接下来我们看一个实例。
全局中间件:
public function handle($request, Closure $next)
{
echo 'app全局中间件';
return $next($request);
}应用中间件:
public function handle($request, Closure $next)
{
echo '应用中间件';
return $next($request);
}路由中间件:
Route::rule('hello','index/hello')
->middleware(appmiddlewareAuth::class);控制器中间件:
在使用控制器中间件之前,我们先定义好别名,在根目录下configmiddleware.php中定义别名。这个别名其实就是增加别名标识。别名定义好后,不仅在控制器中间件可以使用,路由中间件也可以使用。
return [ 'alias' => [ 'auth1' => appmiddlewareAuth1::class, ], ];
我们在这里定义别名中间件,就不需要在middleware.php中声明了,而是通过在控制中使用别名定义:
class Index
{
protected $middleware = ['auth1'];
public function index()
{
return 'index';
}
public function hello()
{
echo 'hello方法';
}
}这个时候我们访问hello方法,输出结果是:
app全局中间件
应用中间件
路由中间件
控制器中间件
hello方法