yii框架中关于控制器中filter过滤器和外部action的使用

在yii框架中,控制器的过滤器分为执行前和执行后,这里举例是在执行控制器前的过滤。

需要在components/文件夹下定义公共的TestAction.php文件,并且实现run()方法。这个action是各个控制器公用的。

class TestController extends Controller
{
    /**
     * 定义外部的action
     * @return array
     */
    public function actions()
    {
        return array(
            'testa' => array(
                'class' => 'TestAction'
            )
        );
    }
    public function filters()
    {
        return array(
         //'tes+edit,modify' 仅仅edit和modify需要执行过滤
'tes-delete' //除了delete外,其他都需要执行过滤 ); } public function filterTes($filterChain) { echo "this is a filter...\r\n"; /* * 定义过滤器链,$filterChain让后面的控制器继续执行 */ $filterChain->run(); } public function actionTe() { echo $this->action->id.PHP_EOL; Yii::app()->clientScript->registerScriptFile(); echo "this is test controller...\r\n"; } public function actionDelete() { echo "this is delete action...\r\n"; } }

 

posted @ 2016-05-12 17:11  zhou_blog  阅读(215)  评论(0编辑  收藏  举报