В настоящее время моя форма входа выглядит так:
class LoginForm extends BaseFormPropel
{
public function setup()
{
$this->setWidgets(array(
'login_id' => new sfWidgetFormInput(),
'pwd' => new sfWidgetFormInputPassword()
));
$this->widgetSchema->setLabels(array(
'login_id'=>'Login Id',
'pwd'=>'Password'
));
$this->widgetSchema->setNameFormat('member[%s]');
$this->setValidators(array(
'login_id' => new sfValidatorPropelChoice(array('model' => 'Member', 'column' => 'login_id', 'required' => true)),
'pwd' => new sfValidatorPropelChoice(array('model' => 'Member', 'column' => 'pwd', 'required' => true))
));
$this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
parent::setup();
}
public function getModelName()
{
return 'Member';
}
}
Но это неправильная реализация, потому что sfValidatorPropelChoice гарантирует, что пользователь только вводит значение, которое существует в столбце. Это означает, что если база данных содержит следующие строки,
login_id | PWD
Джон, 12345
Питер, 67890
Пользователь, использующий john и 67890 для входа в систему, добьется успеха.
У меня вопрос: какой валидатор мне следует использовать для устранения проблемы?