Как передать параметры в действие входа? - PullRequest
2 голосов
/ 02 апреля 2012

Я хочу, чтобы в действии входа выполнялась другая группа операторов, основанная на параметре, переданном через URL. В appController у меня есть такой код:

function beforeFilter() {
    if(isset($this->passedArgs['type']) && ($this->passedArgs['type'] == 1)) {
        $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login', 'type' => 1);
    } elseif(isset($this->passedArgs['type']) && ($this->passedArgs['type'] == 2)) {
        $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login', 'type' => 2);
    } else {
        $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login', 'type' => 1);
    }
    $this->Auth->loginRedirect = array('controller' => 'customers', 'action' => 'index');
    $this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
}

Но, когда я передаю параметры, я не могу войти, так как var_dump ($ this-> data) является пустым массивом. Когда я удаляю параметры, это работает просто отлично. Пожалуйста, кто-нибудь, дайте мне знать, является ли это правильным способом передачи параметров в действие?

1 Ответ

0 голосов
/ 02 апреля 2012

Вы должны обработать это внутри действия login ().

Пример действия входа в систему см. Здесь https://github.com/CakeDC/users/blob/2.0/Controller/UsersController.php#L336

Если пользователь вошел в систему успешно, проверьте переданные аргументы длявсе, что вы ищете и перенаправить на основе этого.

...