Код:
$query = Doctrine_Core::getTable('Users')->createQuery('u')
->select('u.email')
->where('u.username = ?', $this->getRequest()->getCookie('vL_username'))
->andWhere('u.password = ?', md5($editprofile['password']));
$this->form->setValidators(array(
'password' => new sfValidatorDoctrineChoice(array(
'model'=>'Users',
'column'=>'password',
'query'=>$query,
), array(
'invalid' => 'The password is wrong.',
'required' => 'Required',
)
),
));
Но это не работает.Он автоматически добавляет AND WHERE password = 'whatever the inputed value is (unencrypted)'
Идея состоит в том, что мне нужно зашифровать с использованием md5 входное значение перед проверкой по записи в БД.Если я удаляю 'column'=>'password',
и оставляю только $query
, автоматически добавляется введенное значение как id !(Который является первичным ключом таблицы).
В моем случае мне не нужен sfValidatorDoctrineChoice, чтобы написать запрос, а просто использовать мой, чтобы проверить, существует ли запись с заданными параметрами.Как я могу это сделать?