Yii2 如何在子控制器中继承BaseController行为,因为基本行为优先于子控制器行为?

Yii2 如何在子控制器中继承BaseController行为,因为基本行为优先于子控制器行为?,yii2,Yii2,比如说?我有两个BaseController和ChildController。 我希望从BaseController附加行为,但当behaviorsChild时,优先级具有behaviorsBase 基数: 儿童: [ 'allow' => true, 'roles' => ['admin'], 'matchCallback'

比如说?我有两个BaseController和ChildController。 我希望从BaseController附加行为,但当behaviorsChild时,优先级具有behaviorsBase

基数:

儿童:

                    [
                    'allow' => true,
                    'roles' => ['admin'],
                    'matchCallback' => function($rule, $action) {
                        return ... can...
                    }
                ],
和逻辑:

如果父级返回false,则访问被拒绝

如果parent返回true,那么什么返回child

怎么做

这一定对你有帮助

  public function behaviors()
  {
    $behaviors = parent::behaviors();
    $behaviors['access'] = [
      'class' => AccessControl::className(),
      'rules' => [
        [
          'allow' => true,
          'matchCallback' => function ($rule, $action) {
            return ... can ...;
          },
        ],
      ],
    ];
    return $behaviors;
  }
其他方法可以是:

public function behaviors()
  {
    $behaviors = parent::behaviors();
    $behaviors['access']['rules'][] = [
      'allow' => true,
      'matchCallback' => function ($rule, $action) {
        return ... can ...;
      },
    ];
    return $behaviors;
  }
public function behaviors()
  {
    $behaviors = parent::behaviors();
    $behaviors['access']['rules'][] = [
      'allow' => true,
      'matchCallback' => function ($rule, $action) {
        return ... can ...;
      },
    ];
    return $behaviors;
  }