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
微信扫一扫打赏
支付宝扫一扫打赏