_forward() в Zend не работает?

Вот код:

    public function loginAction()
{
    $form = new Application_Form_Login();
    $this->view->form = $form;

    if($this->_request->isPost())
    {
        self::$dataForm = $this->_request->getPost();
        if($this->form->isValid(self::$dataForm))
        {
            return $this->_forward('authorization');
        } else
        {
            $this->form->populate(self::$form);
        }
    }

}

public function authorizationAction()
{
    if($this->_request->isPost())
    {
        $auth = Zend_Auth::getInstance();
        $authAdapter = new Application_Model_User($this->user->getAdapter(),'user');
        $authAdapter->setIdentityColumn('USERNAME')
                    ->setCredentialColumn('PASSWORD');
        $password = md5(self::$dataForm['password']);
        $authAdapter->setIdentity(self::$dataForm['username']);
        $authAdapter->setCredental($password);

        $result = $auth->authenticate($authAdapter);
        echo 'ok';
        /*
        if($result->isValid())
        {
            //$this->_forward('authorized', 'user');
            echo 'ok';
        }*/
    }
}

Есть идеи, почему это не работает? Я не получил никакой ошибки просто пустая страница.

2 ответа

Решение

Разве вы не должны звонить if($form->isValid(self::$dataForm))?

Насколько я понимаю, это плохая идея использовать $this->_forward(), так как он снова вызывает цикл отправки.

Лично я бы поместил код авторизации в класс модели и передал ему имя пользователя и пароль из формы.

Другие вопросы по тегам