Проблема с обработкой форм в symfony - PullRequest
0 голосов
/ 15 марта 2011

Я новичок в Symfony, и у меня возникла следующая проблема при создании логики входа в приложение:

1) У меня есть форма, которая загружается слотом в файле layout.php, форма содержит объект «Пользователь», имеющий только 2 свойства: «имя_пользователя» и «пароль», и проверка выполняется Каркас валидатора Symfony (оба поля имеют обязательный валидатор, как вы уже догадались)

страница указателя принимается действием:

public function executeIndex(sfWebRequest $request)
{
    $this->form = new UserFormLogin();
}  

Форма загружается примерно так в файле макета:

2) У меня есть действие при входе, которое выполняет проверку, вот соответствующий код:

protected function processLoginForm(sfWebRequest $request, sfForm $form)
{
    form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
if ($form->isValid())
{ 
         ...Some code to retrieve from db, check credentials etc...

      }
      else
      {
          $this->redirect('users/index');
      }
}

public function executeLogin(sfWebRequest $request){
    $this->forward404Unless($request->isMethod(sfRequest::POST));
    $this->form = new UserFormLogin();
    $this->processLoginForm($request, $this->form);
}

3) Все вышеперечисленное, поэтому (теоретически), когда пользователь вводит недействительные учетные данные, возвращается в индекс и показывает сообщения об ошибках ... но вместо получения ожидаемого «имени пользователя требуется» или чего-то в этом роде, он дает следующая ошибка: «Объект с таким же именем пользователя уже существует.

Есть идеи, почему это так? пожалуйста, помогите мне, что я пропускаю?

1 Ответ

0 голосов
/ 15 марта 2011

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

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