cakePHP застрял на странице входа с Auth - PullRequest
0 голосов
/ 14 декабря 2011

У меня проблема здесь. Я создал приложение 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: СЛИШКОМ МНОГИЕ НАПРАВЛЕНИЯ.

Я не могу перейти к своему индексу, добавить или просмотреть страницу. Помогите пожалуйста?

Ответы [ 2 ]

2 голосов
/ 14 декабря 2011

В указанном вами коде вы, похоже, ничего не делаете, чтобы действие 'login' было доступно, если вы еще не вошли в систему.

function beforeFilter()
{
    parent :: beforeFilter();

    $this->Auth->allow('login');
}

Если вы этого не сделаете, страница входа в систему защищена, и вы будете перенаправлены на ... страницу входа, вы будете перенаправлены на ... страницу входа, а вы перенаправлены на ... страницу входа, перенаправляя вас на ... страницу входа; -)

0 голосов
/ 14 декабря 2011

Этот фрагмент кода застрял в бесконечном цикле, потому что он продолжает перенаправлять вас обратно на страницу входа в систему:

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

Ознакомьтесь здесь со списком переменных компонента Auth ,В частности, часть loginRedirect.Вы должны вставить это в функцию beforeFilter:

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