2011-10-10 64 views
2

当我点击我的导航栏上的招生项下的Enroll Now按钮时,应该显示\merry_flowers\views\students\add.ctp
相反,登录页面正在显示。 有人知道我做错了什么吗?

下面是我app_controller.php项目为:

class AppController extends Controller { 
var $components=array('Auth','Session','Cookie'); 

function beforeFilter(){ 
    if (isset($this->Auth)){ 
     $this->Auth->userModel='MerryParent'; 
     $this->Auth->loginAction=array('controller'=>'merry_parents','action'=>'login'); 
        //var_dump($this->data); 
     $this->Auth->allow('*'); 
     $this->Auth->loginRedirect=array('controller'=>'merry_parents','action'=>'report_card'); 
     $this->Auth->logoutRedirect=array('controller'=>'merry_parents','action'=>'register'); 
     $this->Auth->deny('report_card'); 
     $this->Auth->authorize='controller'; 
     } 
    else 
     $this->Session->setFlash('Auth has not been set'); 
} 

function isAuthorized(){ 
    return true; 
} 

任何帮助深表感谢。

回答

2

一个问题是,如果您的StudentsController有一个beforeFilter,您需要拨打parent::beforeFilter或Auth设置不会发生。

我也注意到caveat使用authorize = 'controller'; “请记住,在您已经通过了针对用户模型的基本身份验证检查后,将会检查[isAuthorized]。”鉴于你有$this->Auth->allow('*'),auth应该完全跳过,所以我会寻找一个更基本的错误,如beforeFilter覆盖。

不幸的是,在你的粘贴代码中没有什么突出的。根据我的经验,认证问题通常涉及facepalm解决方案:)

+0

嗨,如你所建议的,我将Parent :: beforeFilter()添加到了StudentsController中的beforeFilter中,现在一切正常。非常感谢!:) – vaanipala