laravel

laravel路由知识【附laravel5.8视频教程】

2019-06-18  本文已影响56人  这真的是一个帅气的名字

有时候写了路由,明明是对的,但是访问的话报错可以尝试清除路由缓存

  php artisan route:clear
  php artisan route:cache

另外查看路由列表命令

php artisan route:list

中间件

Route::group(['middleware' => 'is.admin',],function (){
  //这里是经过is.admin验证过滤的路由
  //TODO
});

如果自带的满足不了,可以自己make一个middleware

首先创建一个middleware

运行命令

php artisan make:middleware CheckIsAdmin

文件地址在/app/Http/Middleware/CheckIsAdmin.php
如果验证可以用自带的auth

if(!Auth::check()){
  return redirect()->route('admin.login');
}
image.png

然后再kernel里面$routeMiddleware下面注册一下

image.png

路由里面使用

/*
 * middleware   Kernel里面$routeMiddleware的中间件
 *prifix        路由的前缀
 *namespace     命名空间
 * */
Route::group(['prefix' => 'admin', 'namespace'=>'Admin',],function (){
    Route::get('/login','LoginController@login')->name('admin.login');
    Route::post('/dologin','LoginController@dologin')->name('admin.dologin');
//    需要登录后才可以访问的路由
    Route::group(['middleware' => 'is.admin',],function (){

    });
});
如果路径都是admin下面。那么用prefix可以把admin路径提出来,使代码更简洁
如果控制器都在Admin下面,namespace的作用是把Admin统一提出来。

上面代码如果不用perfix和namespace:

Route::group(function (){
    Route::get('/admin/login','Admin\LoginController@login')->name('admin.login');
    Route::post('/admin/dologin','Admin\LoginController@dologin')->name('admin.dologin');
//    需要登录后才可以访问的路由
    Route::group(['middleware' => 'is.admin',],function (){

    });
});

可以对比找一下区别

Route[xxxx] not defined解决

一般在路由后面加上->name('xxxx');就可以了




本人有份laravel5.8教学课程,需要的同学可以关注公众号:小贝壳的资源库恢复laravel获取


小贝壳的资源库
上一篇下一篇

猜你喜欢

热点阅读