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)
如果您可以看到在该代码上没有声明结帐,那么无关紧要.
您认为/是什么原因?非常感谢您的帮助和奖励!
谢谢!:)
如果您的控制器中有访问规则,则需要将此"结帐"操作添加到这些规则中.
您需要将"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)