2010-08-19 2 views
1

Я недоумеваю этим. У меня есть действие входа, выглядит следующим образом:ZF Form отказывается от POST

public function loginAction() 
{ 
    $form = new Application_Form_Login; 
    $form->setAction("https://stackoverflow.com/users/login"); 

    $request = $this->getRequest(); 

    var_dump($request->isPost()); 
    if ($request->isPost() && $form->isValid($request->getPost())) { 
     // snipped code that is never reached anyway 
    } 

    $this->view->form = $form; 
} 

И форма:

class Application_Form_Login extends Zend_Form 
{ 
    public function init() 
    { 
     $this->setMethod("post"); 

     $email = new Zend_Form_Element_Text("email"); 
     $email->addFilter("StringTrim") 
       ->addValidator("NotEmpty") 
       ->addValidator("EmailAddress") 
       ->setRequired(true) 
       ->setLabel("Email address"); 
     $this->addElement($email); 

     $password = new Zend_Form_Element_Password("password"); 
     $password->addFilter("StringTrim") 
       ->addValidator("NotEmpty") 
       ->setRequired(true) 
       ->setLabel("Password"); 
     $this->addElement($password); 

     $submit = new Zend_Form_Element_Submit("finish"); 
     $submit->setLabel("Login"); 
     $this->addElement($submit); 
    } 
} 

var_dump($request->isPost()) всегда возвращает ложь, но в основном идентичного действия он прекрасно работает! Есть идеи?

+0

Вы уверены, что Вы публикуете форму? Я имею в виду, что вы нажимаете «Отправить», и он идет в контроллер входа в систему? – Iznogood

ответ

1

Я отследил его. У меня была перенаправлена ​​на/users, чтобы перенаправить обратно в/users/login, если пользователь не был зарегистрирован. Я не сохранял результат Zend_Auth в хранилище, таким образом, мне удалось, что вход для показа не делал ничего.

POST http://localhost/users/login (302 Found) 
GET http://localhost/users 
GET http://localhost/users/login