я приготовлю регистрационную форму (простейший) и в моей модели я подготовить некоторые проверки для электронной почты поля:CakePHP isUnique не работает
'email' => array(
'mail' => array(
'rule' => array('email', true),
'required' => false,
'message' => 'Not correct e-mail!'),
'unique' => array(
'rule' => 'isUnique',
'message' => 'E-mail was registered!'))
Но правило isUnique не работает.
Дополнение i меняет текст поля MySQL на уникальный, но по-прежнему не работает.
Я использую CakePHP 2.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` = '[email protected]'
поле электронной почты не переведено.
isUnique всегда действителен, даже если зарегистрировано электронное письмо – kicaj
Да, правило ('email', true) работает хорошо:/ – kicaj
Проверьте журнал sql - Если нет запроса для выбора count (*) от пользователей где email = «текст, который вы ввели» - скорее всего, правило не определено правильно. – AD7six