我们常在控制器中看到一个actions的方法,这个方法具体的作用是共用一些功能相同的action,方便调用。
当然我们也可以自已写一些action来进行调用。在项目目录下创建common目录,并创建TestAction.php文件。action文件的存放路径可以随意指定。
<?php //注意这里的命名空间,要跟你的目录对应 namespace appcommon; use yiiaseAction; //我们需要继承yiiaseAction类 class TestAction extends Action { //这里面的三个参数的值是通过控制器actions中配置而来的 public $param1 = null; public $param2 = null; public $param3 = null; //实现run方法 public function run() { echo "test run param1: {$this->param1} param2: {$this->param2} param3: {$this->param3}"; } }
控制器代码如下:
<?php namespace appcontrollers; use YII; use yiiwebController; class IndexController extends Controller { //actions的作用主要是共用功能相同的方法 public function actions() { return [ 'test' => [ 'class' => 'appcommonTestAction', 'param1' => 'hello', 'param2' => 'world', 'param3' => '!!!', ], ]; } }
这样我们在地址栏就可以通过/index/test来访问调用了。