前置操作
最后更新于:2022-04-01 21:19:29
可以为某个或者某些操作指定前置执行的操作方法,设置 `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
'; } protected function second() { echo 'second
'; } protected function three() { echo 'three
'; } public function hello() { return 'hello'; } public function data() { return 'data'; } } ~~~ 访问 ~~~ http://localhost/index.php/index/Index/hello ~~~ 最后的输出结果是 ~~~ first three hello ~~~ 访问 ~~~ http://localhost/index.php/index/Index/data ~~~ 的输出结果是: ~~~ first second three data ~~~
';
'; } protected function second() { echo 'second
'; } protected function three() { echo 'three
'; } public function hello() { return 'hello'; } public function data() { return 'data'; } } ~~~ 访问 ~~~ http://localhost/index.php/index/Index/hello ~~~ 最后的输出结果是 ~~~ first three hello ~~~ 访问 ~~~ http://localhost/index.php/index/Index/data ~~~ 的输出结果是: ~~~ first second three data ~~~