即使以管理员身份登录,Yii也会收到错误403

Pin*_*wer 0 php yii

public function actionCheckout()
{
     echo "Hello World!";
}
Run Code Online (Sandbox Code Playgroud)

我刚刚在控制器中创建了这个非常简单的代码但是当我尝试在我的URL中浏览它时它会向我显示以下错误:

在此输入图像描述

即使我目前以管理员身份登录,但仍然无法访问非常简单的代码.

我将发布CRUD生成的accessRules,我不知道这是否相互关联,但是当我尝试删除此行时,我已经可以访问该页面了.

public function accessRules()
    {
        return array(
            array('allow',  // allow all users to perform 'index' and 'view' actions
                'actions'=>array('index','view'),
                'users'=>array('*'),
            ),
            array('allow', // allow authenticated user to perform 'create' and 'update' actions
                'actions'=>array('create','update'),
                'users'=>array('@'),
            ),
            array('allow', // allow admin user to perform 'admin' and 'delete' actions
                'actions'=>array('admin','delete'),
                'users'=>array('admin'),
            ),
            array('deny',  // deny all users
                'users'=>array('*'),
            ),
        );
    }
Run Code Online (Sandbox Code Playgroud)

如果您可以看到在该代码上没有声明结帐,那么无关紧要.

您认为/是什么原因?非常感谢您的帮助和奖励!

谢谢!:)

Dav*_*veR 5

如果您的控制器中有访问规则,则需要将此"结帐"操作添加到这些规则中.

您需要将"checkout"添加到accessRules()函数中所需的访问级别.如果每个人都可以访问它,您需要:

        array('allow',  // allow all users to perform 'index' and 'view' actions
            'actions'=>array('index','view', 'checkout'),
            'users'=>array('*'),
        )
Run Code Online (Sandbox Code Playgroud)

或者仅供管理员访问:

        array('allow',  // allow admin user access
            'actions'=>array('admin','delete','checkout'),
            'users'=>array('admin'),
        )
Run Code Online (Sandbox Code Playgroud)