参考:http://www.cnblogs.com/jkko123/p/8669728.html
这个其实就是在一个类方法中引用一个方法过来【注入一个方法到一个类中】
先来创建个继承action的方法
<?php
//注意这里的命名空间,要跟你的目录对应
namespace app<span class="hljs-title">common
;
use yii<span class="hljs-title">base<span class="hljs-title">Action;
//我们需要继承yii\base\Action类
class TestAction extends Action {
<span class="hljs-comment">//这里面的三个参数的值是通过控制器actions中配置而来的</span>
<span class="hljs-keyword">public</span> <span class="hljs-variable">$param1</span> = <span class="hljs-keyword">null</span>;
<span class="hljs-keyword">public</span> <span class="hljs-variable">$param2</span> = <span class="hljs-keyword">null</span>;
<span class="hljs-keyword">public</span> <span class="hljs-variable">$param3</span> = <span class="hljs-keyword">null</span>;
<span class="hljs-comment">//实现run方法</span>
<span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">run</span><span class="hljs-params">()</span> {<!-- --></span>
<span class="hljs-keyword">echo</span> <span class="hljs-string">"test run param1: {$this->param1} param2: {$this->param2} param3: {$this->param3}"</span>;
}
}
然后控制器中直接使用actions方法
//actions的作用主要是共用功能相同的方法
public function actions()
{
return [
'test' => [
'class' => 'app\common\TestAction',// 将这个方法映射过来
'param1' => 'hello',
'param2' => 'world',
'param3' => '!!!',
],
];
}
最后就可以直接URL:/index/test 访问了
【见我自己的列子】
public function actions()
{
$actions = parent::actions();
<span class="hljs-regexp">//</span> 企业评审标准信息
<span class="hljs-variable">$actions</span>[<span class="hljs-string">'standard'</span>] = [
<span class="hljs-string">'class'</span> => <span class="hljs-constant">CompanyStandUpdateAction::</span><span class="hljs-class"><span class="hljs-keyword">class</span>,</span>
<span class="hljs-string">'companyId'</span> => <span class="hljs-constant">Tools::</span>getCurrentCompanyId(),
<span class="hljs-string">'redirectAction'</span> => [<span class="hljs-string">'standard'</span>]
];
<span class="hljs-keyword">return</span> <span class="hljs-variable">$actions</span>;
}
/<span class="hljs-regexp">/然后我自己的url访问的地址是:http:/</span><span class="hljs-regexp">/b.risk.com/company</span><span class="hljs-regexp">/standard</span></code></pre>
