Thinkphp 6.0的控制器中间件
支持为控制器定义中间件,你只需要在你的控制器中定义middleware
属性,例如:
<?php
namespace app\controller;
use app\middleware\Auth;
class Index
{
protected $middleware = [Auth::class];
public function index()
{
return 'index';
}
public function hello()
{
return 'hello';
}
}
当执行index
控制器的时候就会调用Auth
中间件,一样支持使用完整的命名空间定义。
如果需要设置控制器中间的生效操作,可以如下定义:
<?php
namespace app\index\controller;
class Index
{
protected $middleware = [
Auth::class . ':admin' => ['except' => ['hello'] ],
'Hello' => ['only' => ['hello'] ],
];
public function index()
{
return 'index';
}
public function hello()
{
return 'hello';
}
}