Php Yii2自定义ActionFilter不使用定义为通配符的“only”

Php Yii2自定义ActionFilter不使用定义为通配符的“only”,php,yii2,Php,Yii2,我有: RestModule>TargetController扩展BaseController 在BaseController中: public function behaviors() { $behaviors['myfilter'] = [ 'class' => MyFilter::className(), 'only' => ['rest/target/*'], ];

我有: RestModule>TargetController扩展BaseController

在BaseController中:

public function behaviors()
{       
        $behaviors['myfilter'] = [
            'class' => MyFilter::className(),
            'only' => ['rest/target/*'],
        ];
        return $behaviors;
}
但我的过滤器工作直到未设置“仅”,或者如果我使用“除外”设置TargetController操作名称


Yii2版本在php 5.5 debian8上是2.0.11.2,因为版本2.0.9操作ID可以指定为通配符,例如site/*

如果要附加具有“only”属性的筛选器,并将ID作为通配符,例如target/*,则应将其作为行为附加到模块类,而不是控制器。 在REST模块中尝试以下操作:

public function behaviors()
{
    $behaviors['myfilter'] = [
        'class' => MyFilter::className(),
        'only' => ['target/*'],
    ];
    return $behaviors;
}
REST模块:

public function behaviors()
{
    $behaviors['myfilter'] = [
        'class' => MyFilter::className(),
        'only' => ['target/*'],
    ];
    return $behaviors;
}

无法将类似表达式的项添加到“only”数组,只能添加精确的控制器IDs@SzántóZoltán,Yii2 Doc:由于2.0.9版操作ID可以指定为通配符,例如site/*,因此我有一个版本。2.0.11.2直到这个问题,我才注意到这个功能,非常感谢你的提问。