0
public function actionCheckout()
{
     echo "Hello World!";
}

我刚刚在控制器中创建了这个非常简单的代码,但是当我尝试在我的 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('*'),
            ),
        );
    }

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

你认为这是/是什么原因?您的帮助将不胜感激和奖励!

谢谢!:)

4

2 回答 2

5

如果您的控制器中有访问规则,那么您需要将此“结帐”操作添加到这些规则中。

您需要在 accessRules() 函数中将“结帐”添加到您需要的任何访问级别。如果每个人都可以访问它,您将需要:

        array('allow',  // allow all users to perform 'index' and 'view' actions
            'actions'=>array('index','view', 'checkout'),
            'users'=>array('*'),
        )

或仅限管理员访问:

        array('allow',  // allow admin user access
            'actions'=>array('admin','delete','checkout'),
            'users'=>array('admin'),
        )
于 2012-08-25T08:03:01.517 回答
1

您必须在一个地方“结帐”指向 accessRules(我设置了所有允许的操作

public function accessRules()
{
    array('allow',  // allow all users to perform 'index', 'view' and 'checkout' actions
        'actions'=>array('index','view', 'checkout'),
        'users'=>array('*'),
    ),
    array('allow', // allow authenticated user to perform 'create', 'update' and 'checkout'actions
        'actions'=>array('create','update','checkout'),
        'users'=>array('@'),
    ),
    array('allow', // allow admin user to perform 'admin','delete' and 'checkout' actions
        'actions'=>array('admin','delete','checkout'),
        'users'=>array('admin'),
    ),
    array('deny',  // deny all users
        'users'=>array('*'),
    ),
 }
于 2012-08-25T08:03:56.303 回答