如何将变量从AccessFilter传递到Yii2中的控制器

如何将变量从AccessFilter传递到Yii2中的控制器,yii2,Yii2,我有一个AccessFilter类 class ProjectAccessControl extends \yii\base\ActionFilter { public $a; /** * @inheritdoc */ public function beforeAction($action) { switch ($action->id) { case 'view': // code he

我有一个AccessFilter类

class ProjectAccessControl extends \yii\base\ActionFilter
{
   public $a;
   /**
    * @inheritdoc
    */
   public function beforeAction($action)
   {
        switch ($action->id) {
          case 'view':
             // code here
             break;
        }
   }
在controller中,我在behavior()方法中撤销此AccessFilter,如下所示:

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

现在我想将
$a
变量从AccessFilter传递到控制器中的任意操作。如何做到这一点?

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

public $a;
并在过滤器中使用此选项:

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