YII behaviors使用

文件 frontend/libs/FilterTest.php

<?php
/**
 * Created by PhpStorm.
 * Date: 2016/5/27
 * Time: 14:16
 */
namespace frontendlibs;
use Yii;
use yiiaseAction;
use yiiaseActionFilter;

class FilterTest extends ActionFilter{

    //在action之前运行,可用来过滤输入
    public function beforeAction($action) {
        echo '在调用action前显示<br/>';
        return TRUE;//如果返回值为false,则action不会运行
    }

    //在action之后运行,可用来过滤输出
    public function afterAction($action, $result) {
        return $result.'在调用action后显示<br/>';//可以对action输出的$result进行过滤,retun的内容会直接显示
    }
}

frontend/controllers/TestbehaviorController.php

<?php
/**
 * Created by PhpStorm.
 * Date: 2016/5/27
 * Time: 14:19
 */
  namespace frontendcontrollers;

  use yiiwebcontroller;

class TestbehaviorController extends Controller{

    public function behaviors(){
        return [
            'test'=>[
              'class'=>'frontendlibsFilterTest',//调用过滤器
            ],
        ];
    }
    public function actionFilter(){
        return "当前action显示<br/>";//返回的内容会递交给过滤器,由afterAction处理
    }
}
原文地址:https://www.cnblogs.com/isuben/p/5534526.html