中间件
中间件有个拦截作用
要有中间件才能使用Laravel的Session功能,比如:之前配置路由的时候我们配置两个路由,一个存储session,一个读取session,这是读取不到存储的session值的(老师演示的时候是不能的,但是我能取到,可能是版本问题吧,尴尬⊙﹏⊙‖∣),要解决这个问题,需要这两个路由在一个组里,并且组中添加了中间件属性。
//理论上是要这么写的,但实际上我实操的时候发现不用写在这里面也行,我估计已经默认启用了什么中间件了吧
Route::group(['middleware'=>['web']],function(){
Route::get('/', function () {
session(['key'=>'asdfdasf<br>']);
return view('welcome');
});
Route::get('/test',function (){
echo session('key');
return 'Hello world!';
});
});
自定义中间件
- 首先要在app\http下的Kernel.php文件中添加自定义中间件(中间件配置应该都在这里)
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'can' => \Illuminate\Foundation\Http\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
//照葫芦画瓢啊(看好路径,是第一个葫芦,我估计能直接在第一个葫芦里自定义代码),最下面的这个就是自己添加的
'admin.login' => \App\Http\Middleware\AdminLogin::class,
];
- 然后用artisan命令创建中间件,当然也可以自己手动创建啦,要注意名称要和配置里的对应
php artisan make:middleware AdminLogin
- 最后在路由的分组里面添加中间件,就能拦截该组的请求啦。