如何在Yii2中将AccessFilter中的变量传递给Controller

时间:2015-07-21 05:33:33

标签: yii2

我有一个AccessFilter类

class ProjectAccessControl extends \yii\base\ActionFilter
{
   public $a;
   /**
    * @inheritdoc
    */
   public function beforeAction($action)
   {
        switch ($action->id) {
          case 'view':
             // code here
             break;
        }
   }

在控制器中,我在behavior()方法中撤销此AccessFilter,如下所示:

public function behaviors()
{
    return [
        'access' => [
            'class' => ProjectAccessControl::className(),
        ]
    ];
}

现在我想将来自AccessFilter的$a变量传递给Controller中的任何操作。怎么做?

1 个答案:

答案 0 :(得分:2)

您只需在控制器中添加一个变量,例如:

public $a;

并在过滤器中使用此功能:

$this->owner->a = $this->a;