我写了以下内容:
$email->addValidator('emailAddress', false)
->setRequired(true)
...
->addValidator(new Zend_Validate_Db_NoRecordExists(
array(
'table' => 'site_users',
'field' => 'email',
)
));
这不起作用,而是我收到以下错误消息:
消息:SQLSTATE [42000]:语法错误或访问冲突:1064
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在'FROM site_users
WHERE(``='Test data4')第1行的LIMIT 1'附近使用正确的语法
有什么想法吗?
答案 0 :(得分:0)
只是查看代码并在Zend_Validate_Db_Abstract
(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;
因此它希望选项的顺序正确,并忽略您指定的键!离奇。但看起来你的代码应该仍然有效 - 你在运行什么版本的ZF?