在项目根目录下使用:php artisan make:middleware 中间件名称Middleware
命令创建中间件
- 创建中间件
php artisan make:middleware
中间件名字Middleare. - 在中间件中写下规则,主要就是进行判断是否登录,当然也别忘了引入命名空间,如下例:
public function handle($request, Closure $next)
{
//判断是否登陆,如未登录则重定向到登陆页
if(empty(\Session::get('admin'))) {
return redirect('/login');
}
//如已登陆则执行下一步
return $next($request);
}
- 在
Kemel.php
文件中中间件添加到局部中间件中,如下例:
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
//添加的中间件 Admin
'Admin' => \App\Http\Middleware\AdminMiddleware::class,
];
- 在路由里加入中间件,除了登录、注册和执行登录方法写到中间件外面,其余的方法都应该写入到中间件里面,如下例:
Route::group(['domain' => 'www.wang.com'], function () {
//登陆 写在中间件外面
Route::resource('index','User\UserController');
//注册 写在中间件外面
Route::resource('create','User\UserController@create');
//执行登陆 写在中间件外面
Route::resource('login','User\UserController@login');
//验证是否登陆中间件
Route::group(['middleware' => 'Admin'],function(){
//列表
Route::resource('show','User\UserController@show');
//修改
Route::resource('edit','User\UserController@edit');
//执行修改
Route::resource('update','User\UserController');
//删除
Route::resource('destroy','User\UserController@destroy');
});
});
网友评论