Возникли проблемы с проверкой данных CakePHP - PullRequest
1 голос
/ 31 января 2012

У меня в настоящее время есть некоторые проблемы с использованием проверки данных cakePHP.

Я пытался использовать правило с аргументом 'on' => 'созданный', но, похоже, оно не работает. Моя цель - проверить при создании пользователя, проверить, не существует ли почта в моей базе данных.

Но когда это редактирование, я не хочу проверять это, я имею в виду, что если пользователь не меняет почту, очевидно, что эта почта уже существует в базе данных, но она точно такая же, как раньше ... .

Так что я не хочу проверять, не были ли изменены письма.

'mail' => array(
                'valid_mail'    => array(
                    'rule'      => array('email', true),
                    'message'   => 'Veuillez insérer un email valide.'
                ),
                'isUnique_mail' => array(
                    'rule'      => 'isUnique',
                    'on'        => 'create',
                    'message'   => 'Ce mail est déjà utilisé.'
                )
            )

Надеюсь, вы, ребята, понимаете мою проблему.

1 Ответ

2 голосов
/ 31 января 2012

Часть вашей проблемы может заключаться в том, что вы не указываете идентификатор записи, которую нужно сохранить, используя $this->Model->id = $id, поэтому при вызове функции save (или saveAll) она пытается вставить запись.

Функция проверки isUnique фактически отфильтровывает идентификатор текущей записи при обновлении, если она была установлена ​​с помощью $this->Model->id. Вы можете увидеть это в нижней части функции (строка 2446).

Лично я бы все время оставлял проверку isUnique, чтобы пользователи не могли изменить свою электронную почту на ту, которая уже существует после регистрации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...