Я новичок в 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) Все вышеперечисленное, поэтому (теоретически), когда пользователь вводит недействительные учетные данные, возвращается в индекс и показывает сообщения об ошибках ... но вместо получения ожидаемого «имени пользователя требуется» или чего-то в этом роде, он дает следующая ошибка: «Объект с таким же именем пользователя уже существует.
Есть идеи, почему это так? пожалуйста, помогите мне, что я пропускаю?