Попытка соединить две независимые формы - PullRequest
1 голос
/ 26 мая 2010

Я пытаюсь объединить две независимые формы (войти и зарегистрироваться) в та же страница.

Моя идея (просто глядя на форму входа):

  • Создать действие, которое показывает обе формы (частичные):

    public function executeLoginAndRegister(sfWebRequest $request){
    
       $this->form_signin =  $this->getUser()->getAttribute('form_signin');
    
    }
    
  • Каждый частичный вызов своего действия:

form action = "php?> Echo url_for ('@ sf_guard_signin')?>" Method = "post">

  • В своих действиях я пишу этот код

    public function executeSignin($request)
    {
       //...
    
      $this->form = new $MyFormclass();
    
       if ($this->form->isValid())
       {
           //...
    
       }else{
    
            // save the form to show the error messages.
            $this->getUser()->setAttribute('form_signin', $this->form);
    
            return $this->forward('sfGuardAuth', 'loginAndRegister');
    
        }
    }
    

Это работает, но, например, если я выполню LoginAndRegister и отправлю неправильно войти в форму, и я иду на другую страницу, а затем вернусь к LoginAndRegister, я найду сообщения об ошибках при отправке ...

Если я выполню LoginAndRegister и неправильно отправлю форму входа и откройте другую вкладку браузера, я найду сообщения об ошибках в форма входа на второй вкладке ...

Есть идеи? лучше подход?

Ответы [ 2 ]

1 голос
/ 26 мая 2010

У меня есть, просто пишу в if "request-> isMethod ('post')":

 public function executeLoginAndRegister(sfWebRequest $request){

    if($request->isMethod('post')){

    $this->form_signin =  $this->getUser()->getAttribute('form_signin');

  }
}

Во всяком случае, если мой подход имеет большую ошибку или не безопасен, я бы спасибо всем, кто мне скажет.

Хави

1 голос
/ 26 мая 2010

Я бы просто использовал sfDoctrineApplyPlugin на вашем месте :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...