Yii2:对同一控制器中的特定操作应用不同的AccessRule筛选器
是否可以在Yii2:对同一控制器中的特定操作应用不同的AccessRule筛选器,yii2,Yii2,是否可以在行为()中使用两个不同的规则集\yii\filters\AccessRule来控制不同的操作?比如: public function behaviors() { return [ // Standard access 'access' => [ 'class' => AccessControl::className(), 'rules' => [
行为()
中使用两个不同的规则集\yii\filters\AccessRule
来控制不同的操作?比如:
public function behaviors()
{
return [
// Standard access
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions' => ['create'],
'allow' => true,
'roles' => ['@'],
],
],
],
// fancy access
'accessView' => [
'class' => AccessControl::className(),
'ruleConfig' => [
'class' => MyFancyAccessRule::className(),
],
'rules' => [
[
'actions' => ['view'],
'allow' => true,
'roles' => ['@'],
],
],
],
];
}
在这种情况下,我希望对
视图
操作应用不同的访问规则,因为它有一个额外的检查…是的,您可以像示例中那样多次附加相同的行为(访问控制
是控制对指定操作的访问的行为)
但是你不需要。您只能使用一种AccessControl
行为,并直接在rules
config:
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions' => ['create'],
'allow' => true,
'roles' => ['@'],
],
[
'class' => MyFancyAccessRule::className(),
'actions' => ['view'],
'allow' => true,
'roles' => ['@'],
],
],
],
];
}