windyet

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 方法
    }
}

 

 

 

 

 —— 更多的请参考文档。

 

 

 

 

 

————占位符

分类:

技术点:

相关文章: