1、创建中间件:
php artisan make:middleware CheckBackendLogin
会在application/http/middleware下生成Check.php中间件,我们编辑内容。
—— 以下例子属于后执行中间件,就是各种条件都不满足,才会跳转目标页。
<?php namespace app\http\middleware; class CheckBackendLogin { public function handle($request, \Closure $next) { if ($request->param(\'name\') == \'a\') { return redirect(\'index/index/index\'); }elseif ($request->param(\'name\') == \'b\'){ return redirect(\'index/index/hello\'); } return $next($request); } }
—— 表示参数为a则跳转到index/index/index,参数为b则跳转到index/index/hello,否则跳转到目标页面。
—— 真实场景举例:时间没到跳转到等待界面,时间已过跳转到过期界面,时间符合才访问目标界面。
2、添加路由到app\Http\Kernel.php中的 $routeMiddleware 参数里面
protected $routeMiddleware = [ ... \'checkBackendLogin\' => \App\Http\Middleware\CheckBackendLogin::class, ];
3、创建路由:向路由添加中间件 CheckBackendLogin
// 单个 Route::rule(\'check/:name\',\'index/index/check\') ->middleware([\'check\']); // 群组: Route::middleware([\'checkBackendLogin\'])->group(function () { // 后台欢迎页 Route::get(\'backend/\', \'Backend\IndexController@index\'); // 测试页面 Route::get(\'backend/test\', \'Backend\TestController@index\'); Route::get(\'backend/test/create\', \'Backend\TestController@create\'); });
// 在控制器中使用中间件:—— 在构造方法中执行中间件
class UserController extends Controller { public function __construct() { $this->middleware(\'auth\'); //使用 auth 中间件 $this->middleware(\'log\')->only(\'index\'); //使用log 中间件,并且只在 index 方法中使用 $this->middleware(\'log\')->except(\'store\'); //使用log中间件,并排除 store 方法 } }
—— 更多的请参考文档。
————占位符