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

如何允许来宾访问Yii2控制器中的某些操作?,yii2,yii2-advanced-app,Yii2,Yii2 Advanced App,我想知道如何配置我的控制器,以允许作为来宾执行某些操作,并能够在Yii2中显示该来宾的视图 我在自己的行为中尝试过这条规则 'access' => [ 'class' => AccessControl::className(), 'rules' => [ [

我想知道如何配置我的控制器,以允许作为来宾执行某些操作,并能够在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:在签出一个新项目Ii2从零开始升级并尝试再次生成控制器和模型后,以前的规则起了作用,我认为是以前项目中的一些配置以某种方式阻止了我作为来宾访问。

在您的规则中

                [
                    'allow' => true,
                    'actions' => ['login', 'signup'],
                    'roles' => ['?'],
                ],
然后,将允许匿名用户进行登录和注册操作

或者也可以使用唯一的方法来豁免不需要acl的操作

有关更多详细信息,请参见使用以下工具

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

这将允许来宾访问

它仍然将我重定向到登录页面:/您要执行哪个操作?向我展示代码。我使用gii生成了一个控制器,我想向来宾用户展示一个视图。那么,您呈现该视图的操作是什么?复制该操作名称并将其放入操作数组中,然后将角色设置为?。这样就可以了。我想显示gii生成的视图,我尝试在我的规则中添加'actions'=>['create','update']和'roles'=>['?'],但仍然被重定向到登录屏幕,我需要在另一个配置中设置什么吗?你的最后一行在句中被截断了