如何允许来宾访问 Yii2 控制器中的某些操作?

How to allow guest access to some actions in Yii2 Controller?

我想知道如何配置我的控制器以允许某些操作作为来宾执行并能够在 Yii2 中显示该来宾的视图。

我已经在我的行为中尝试过这条规则

       'access' => [
           'class' => AccessControl::className(),                           
                'rules' => [
                    [                   
                        'actions' => ['create','update'],       
                        'allow' => true,
                        'ips' => ['127.0.0.1'],                         
                    ]                       
                ],                  
            ]

编辑: 这是我试过的配置:

    'access' => [
                'class' => AccessControl::className(),                          
                'rules' => [                                
                    [
                        'allow' => true,
                        'actions' => ['create', 'update'],
                        'roles' => ['?'],
                    ],
                ],                  
            ]

Edit2:从头开始检查一个新项目(yii2-advanced)并尝试再次生成控制器和模型后,之前的规则起作用了,我认为是之前项目的一些配置阻止了我访问以某种方式作为客人。

在你的规则中

                [
                    'allow' => true,
                    'actions' => ['login', 'signup'],
                    'roles' => ['?'],
                ],

然后将允许匿名用户执行 loginsignup 操作。

或者你也可以使用only方法,免除不需要acl的动作。

详情见http://www.yiiframework.com/doc-2.0/guide-security-authorization.html

使用以下内容

 public $freeAccessActions = ['contact-us', 'free-access-action-2'];

这将允许来宾访问