可以为某个或者某些操作指定前置执行的操作方法,设置 beforeActionList属性可以指定某个方法为其他方法的前置操作,数组键名为需要调用的前置方法名,无值的话为当前控制器下所有方法的前置方法。

    1. ['except' => '方法名,方法名']

    表示这些方法不使用前置方法,

    1. ['only' => '方法名,方法名']

    表示只有这些方法使用前置方法。

    示例如下:

    1. namespace app\index\controller;
    2. use think\Controller;
    3. class Index extends Controller
    4. {
    5. protected $beforeActionList = [
    6. 'first',
    7. 'second' => ['except'=>'hello'],
    8. 'three' => ['only'=>'hello,data'],
    9. ];
    10. protected function first()
    11. {
    12. echo 'first<br/>';
    13. }
    14. protected function second()
    15. {
    16. echo 'second<br/>';
    17. }
    18. protected function three()
    19. {
    20. echo 'three<br/>';
    21. }
    22. public function hello()
    23. {
    24. return 'hello';
    25. }
    26. public function data()
    27. {
    28. return 'data';
    29. }
    30. }

    访问

    1. http://localhost/index.php/index/Index/hello

    最后的输出结果是

    1. first
    2. three
    3. hello

    访问

    1. http://localhost/index.php/index/Index/data

    的输出结果是:

    1. first
    2. second
    3. three
    4. data