可以为某个或者某些操作指定前置执行的操作方法,设置 beforeActionList
属性可以指定某个方法为其他方法的前置操作,数组键名为需要调用的前置方法名,无值的话为当前控制器下所有方法的前置方法。
['except' => '方法名,方法名']
表示这些方法不使用前置方法,
['only' => '方法名,方法名']
表示只有这些方法使用前置方法。
示例如下:
namespace app\index\controller;use think\Controller;class Index extends Controller{ protected $beforeActionList = [ 'first', 'second' => ['except'=>'hello'], 'three' => ['only'=>'hello,data'], ]; protected function first() { echo 'first<br/>'; } protected function second() { echo 'second<br/>'; } protected function three() { echo 'three<br/>'; } public function hello() { return 'hello'; } public function data() { return 'data'; } }
访问
http://localhost/index.php/index/Index/hello
最后的输出结果是
firstthreehello
访问
http://localhost/index.php/index/Index/data
的输出结果是:
firstsecondthreedata