您的位置 首页 > 腾讯云社区

laravel博客项目实战.2--第一个页面---大话swift

laravel默认为我们提供了路由,就是上篇文章看到的页面,这个路由文件位置

/www/wwwroot/leeBlog.com/routes

这里采用闭包定义了一个简单的路由

Route::get('/', function () { return view('welcome');});

PS:我们开发过程中不提倡这么定义路由。为了提升网站的响应速度,我们会把路由地址缓存起来,闭包路由无法进行缓存!

我们在控制台执行(注意这个时候控制台会报错)

php artisan route:cache第一条路由

清除已有的路由内容,执行一下命令,生成我们的第一条路由

php artisan make:controller WebIndexController

此时我们的项目结构如下图:

修改routers目录下的web.php文件,内容如下

Route::get('/', 'WebIndexController@index');

修改app/Http/Controllers/Web/IndexController.php里面的内容如下

<?php namespace AppHttpControllersWeb; use AppHttpControllersController;use IlluminateHttpRequest; class IndexController extends Controller{ // public function index() { return view('welcome'); }}

再次访问http://leeblog.com(我们本地映射的域名),页面和当初我们开始的页面一样,说明我们定义的第一条路由完美实现!

缓存路由php artisan route:cache

找到我们项目中bootstrap/cache/routes-v7.php,这个就是我们的路由缓存文件,如果存在,laravel就不会重新解析路由,直接拿到这个解析后的路由进行相应,从而提升网站访问速度。

当我们增加了路由缓存,我们再增加路由,我们的新路由是无法访问的,那么我们就需要清除路由缓存

清除路由缓存php artisan route:clear

有人说,我每次都这么写

Route::get('/', 'WebIndexController@index');

所有的都有Web这个单词,我想去掉,可以的!

统一定义路由命名空间

找到app/Providers/RouteServiceProvider.php这个文件,修改为如下内容

//我们自己定义一个命名空间 protected $namespaceWeb = 'AppHttpControllersWeb';

修改mapWebRoutes函数如下所示

protected function mapWebRoutes() { //修改为我们自己定会的命名空间 Route::middleware('web') ->namespace($this->namespaceWeb) ->group(base_path('routes/web.php')); }

这样我们的路由就可以修改为,从而避免了重复定义命名空间

Route::get('/', 'IndexController@index');视图

laravel的视图文件默认是放在resources/views目录下面,如下图所示:

我们项目当中不提倡把文件都放在一个目录下面,要按照目录分层,方便管理

移动模板文件,这个时候我们的模板文件路径如下图所示

resources/views/web/index/welcome.blade.php

修改我们的控制器

<?php namespace AppHttpControllersWeb; use AppHttpControllersController;use IlluminateHttpRequest; class IndexController extends Controller{ // public function index() { //模板 return view('web.index.welcome'); }}

至此,我们自己定义的第一条路由完成。

---来自腾讯云社区的---大话swift

关于作者: 瞎采新闻

这里可以显示个人介绍!这里可以显示个人介绍!

热门文章

留言与评论(共有 0 条评论)
   
验证码: