Проверка формы Symfony - PullRequest
       1

Проверка формы Symfony

0 голосов
/ 27 января 2011
//creates a sfForm for the login
  $this->form = new sfForm();
  $this->form->setWidgets(array(
    'email' => new sfWidgetFormInputText(array('default' => 'me@example.com')),
    'password' => new sfWidgetFormInputPassword()
    )
  );

  //TODO: sfValidatorRegex on the password!
  $this->form->setValidators(array(
   'email' => new sfValidatorEmail(),
   'password' => new sfValidatorString(array(
    'min_length' => 8, 
    'max_length' => 255), 
    array(
     'min_length' => 'Password is too short. Minimum 8 characters required.')
   )));

Затем, после того как я проверил запрос на параметр отправки

if($this->form->isValid(){
   loginUser();
}

Неважно, какой короткий пароль или фальшивое электронное письмо я ввел, он никогда не завершится.

1 Ответ

2 голосов
/ 27 января 2011

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

Вы должны поместить свою форму в отдельный файл, я предполагаю, что вы поместили ее в lib/form/LoginForm.class.php.

ВМетод configure() формы создает формат имени: $this->widgetSchema->setNameFormat("login[%s]").

Код вашего действия:

$this->form = new LoginForm();
if ($request->isMethod("post")) {
  $this->form->bind($request->getParameter("login"));
  if ($this->form->isValid()) {
    //whatever
  }
}

Перед созданием системы аутентификации и авторизации с нуля, посмотрите наФактический стандарт Symfony: sfDoctrineGuardPlugin .Он также имеет версию Propel, которая называется sfGuardPlugin .

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