I've written the following:
$email->addValidator('emailAddress', false)
->setRequired(true)
...
->addValidator(new Zend_Validate_Db_NoRecordExists(
array(
'table' => 'site_users',
'field' => 'email',
)
));
This isn't working and instead I'm getting the following error message:
Message: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM site_users
WHERE (`` = 'Test data4') LIMIT 1' at line 1
Any ideas?
Just had a look at the code and found this in the constructor for Zend_Validate_Db_Abstract
(parent of Zend_Validate_Db_NoRecordExists
):
$options = func_get_args();
$temp['table'] = array_shift($options);
$temp['field'] = array_shift($options);
if (!empty($options)) {
$temp['exclude'] = array_shift($options);
}
if (!empty($options)) {
$temp['adapter'] = array_shift($options);
}
$options = $temp;
So it expects the options to be in the correct order, and ignores the keys you specify! Bizarre. But it looks like your code should have still worked - what version of ZF are you running?
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.