2012-08-25 34 views
0
public function actionCheckout() 
{ 
    echo "Hello World!"; 
} 

我刚刚创建这个非常简单的代码控制器,但是当我试图浏览它在我的网址它表明我这个错误:Yii的得到错误403,即使登录为管理员

enter image description here

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

我会发布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('*'), 
      ), 
     ); 
    } 

如果你可以看到没有在该代码上声明结帐,所以它没关系。

您认为这是/是什么原因?您的帮助将不胜感激,并获得奖励!

谢谢! :)

+1

最后一个规则拒绝未在它上面的访问规则中列出的所有请求,因为你还没有宣布'checkout',这将是无论是谁试图访问被拒绝它,如下面的答案所示,你需要添加t他'检查'行动到您的访问规则 – Stu

+0

我不知道为什么有人会投票这个问题,因为这个问题是有用的新手。 – PinoyStackOverflower

回答

5

如果您在控制器中有访问规则,那么您需要将这个“检出”操作添加到这些规则中。

您需要在您的accessRules()函数中将“checkout”添加到所需的访问级别。如果是对任何人访问,你将需要:

 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'), 
     ) 
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('*'), 
    ), 
}