cakePHP在Auth的日志页面卡住了


cakePHP stuck on logging page with Auth

我这里有一个问题。我使用cakePHP的Bake特性创建了一个cakePHP应用程序。我烘焙了我的模型、控制器和视图(使用默认的索引、添加、编辑和视图操作)。我在数据库中创建了一个名为users的小表,它只包含三个字段(id int auto_increment主键,用户名varchar(15),密码charr(40))。我遇到的问题是,当我使用Auth组件时,我将永远卡在日志页面上(直到我将其取出)。我已经尝试了几乎所有在我的函数login()和beforeFilter()没有成功。有什么想法吗?

我像这样在我的用户控制器中使用Auth组件:

var $components = array('Auth');

我已经在我的函数beforeFilter()中尝试了这一点,但它不起作用:

function beforeFilter() {
    $this->Auth->autoRedirect = false;
    parent::beforeFilter();
}

我甚至尝试在我的函数login()中重定向,像这样:

function login() {
    $this->redirect($this->Auth->redirect());
}

但是当我这样做时,我得到错误310:TOO MANY REDIRECTS.

我无法进入我的索引、添加或查看页面。帮助吗?

在您提供的代码中,如果您尚未登录,您似乎没有做任何事情来使'login'操作可访问。

function beforeFilter()
{
    parent :: beforeFilter();
    $this->Auth->allow('login');
}

如果您不这样做,登录页面将被保护,使您重定向到…登录页面,让你重定向到…登录页面,让你重定向到…登录页面,让你重定向到…登录页面;-)

这段代码让您陷入了一个无限循环,因为它不断将您重定向回登录页面:

function login() {
    $this->redirect($this->Auth->redirect());
}

在这里阅读Auth组件变量列表。特别是loginRedirect部分。你需要把它放到beforeFilter函数中:

function beforeFilter() {
    parent::beforeFilter();
    $this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'index');
}