Validation CakePHP isUnique不起作用
我准备了一些最简单的登记表,在我的模型中,我为电子邮件字段准备了一些验证:Validation CakePHP isUnique不起作用,validation,cakephp,rule,Validation,Cakephp,Rule,我准备了一些最简单的登记表,在我的模型中,我为电子邮件字段准备了一些验证: 'email' => array( 'mail' => array( 'rule' => array('email', true), 'required' => false, 'message' => 'Not correct e-mail!'), 'unique' => array(
'email' => array(
'mail' => array(
'rule' => array('email', true),
'required' => false,
'message' => 'Not correct e-mail!'),
'unique' => array(
'rule' => 'isUnique',
'message' => 'E-mail was registered!'))
但“唯一”规则不起作用。
另外,我将MySQL字段中的电子邮件更改为unique,但仍然不起作用。
我使用CakePHP2.3.7
问题是当我们在模型中使用转换行为时
查询:
SELECT COUNT(DISTINCT(`User`.`id`)) AS count FROM `sometable`.`users` AS `User` INNER JOIN `sometable`.`i18n` AS `I18nModel` ON (`User`.`id` = `I18nModel`.`foreign_key` AND `I18nModel`.`model` = 'User' AND `I18nModel`.`locale` = 'pl') WHERE `User`.`email` = 'kicaj@kdev.pl'
字段电子邮件未翻译。试试这个
array(
'email' => array(
'notEmpty' => array(
'rule' => 'notEmpty',
'message' => 'Provide an email address'
),
'validEmailRule' => array(
'rule' => array('email'),
'message' => 'Invalid email address'
),
'uniqueEmailRule' => array(
'rule' => 'isUnique',
'message' => 'Email already registered'
)
)
);
我复制了你的代码并粘贴到了我的模型中,效果很好!!!我认为没有任何错误。我只是在你的代码后面加了分号。以下是我检查过的代码:
'email' => array(
'mail' => array(
'rule' => array('email', true),
'required' => false,
'message' => 'Not correct e-mail!'),
'unique' => array(
'rule' => 'isUnique',
'message' => 'E-mail was registered!')),
我想还会有其他错误 区别是什么?不要忘记最后一个=>true,因为它们是连续的验证规则。isUnique始终有效,即使电子邮件已注册,规则“email”,true适用:/sql日志-如果您输入的email=text用户没有查询select count*,则可能规则定义不正确。@AD7six问题是当我们使用模型转换时,我显示了查询bellow,我不知道您想说什么。