Я обновил некоторые данные, вставив их в поля и нажав кнопку обновления, но validates()
всегда возвращает false. Все поля заполняются правильно, и на нем не отображаются сообщения об ошибках – validates()
просто возвращает false. Зачем?
$this->Post->set($this->data); if ($this->Post->validates()) echo 'ok'; else echo 'error';
Проверьте этот пост за некоторыми советами. Здесь приведены соответствующие данные.
Сохранить () не работает! Иногда бывает, что save()
терпит неудачу без какой-либо очевидной причины. Ваш массив данных выглядит отлично, и вы правильно создали форму и т. Д. И т. Д., Но запрос не был выполнен. Очень возможно, что сохранение завершилось неудачно из-за ошибок проверки. Возможно, вы обновляете какую-либо модель, и, хотя текущие поля в форме проходят проверку, существует вероятность того, что некоторые «другие» приведут к тому, что правила проверки будут терпеть неудачу. Легкий (и полезный) способ увидеть, что происходит с проверкой, – это сделать pr($this->validationErrors);
на ваш взгляд. Используя этот метод, вы точно увидите, что происходит с проверкой вашей модели. Другой вариант – передать false
как второй параметр для save();
чтобы отключить проверку. Тем не менее, последний метод не дает большой подсказки и не должен использоваться для исправления неисправной проблемы, а для намеренного предотвращения проверки.
Сохранить () все еще не работает! У вас есть beforeSave();
в модели модели или приложения? Всегда проверяйте этот метод и, что еще более важно, убедитесь, что он возвращает true
.
Проверка на создание или обновление CakePHP имеет ключ 'on'
который будет использоваться в вашем массиве $validate
. Он позволяет указать, должно ли правило применяться во время создания новой записи или во время обновления существующей записи. Например, если вы хотите проверить уникальный адрес электронной почты при создании новой учетной записи пользователя, вы должны добавить 'on' => 'create'
в свой массив $validate
. Поэтому это правило будет игнорироваться при обновлении / редактировании некоторых пользователей.