cakephp, подтвердите ошибку - PullRequest
4 голосов
/ 14 января 2011

Я обновил некоторые данные, вставив их в поля и нажав кнопку обновления, но validates() всегда возвращает false. Все поля заполнены правильно, и никаких сообщений об ошибках не отображается - validates() просто возвращает false. Почему?

$this->Post->set($this->data);
if ($this->Post->validates())
    echo 'ok';
else
    echo 'error';

1 Ответ

5 голосов
/ 14 января 2011

Проверьте этот пост для некоторых советов.Соответствующие даны здесь.

  1. Сохранить () не работает!Иногда случается, что save() терпит неудачу без какой-либо очевидной причины.Ваш массив данных выглядит нормально, и вы правильно построили форму и т. Д., И т. Д., Но запрос не был выполнен.Вполне возможно, что сохранение не удалось из-за ошибок проверки.Возможно, вы обновляете некоторую модель, и, хотя текущие поля в форме проходят проверку, есть вероятность, что некоторые «другие» приводят к сбою правил проверки.Простой (и полезный) способ узнать, что происходит с проверкой, - это сделать pr($this->validationErrors); на ваш взгляд.Используя этот метод, вы точно увидите, что происходит с проверкой вашей модели.Другой вариант - передать false в качестве второго параметра save();, чтобы отключить проверку.Однако последний метод не дает большой подсказки и не должен использоваться для исправления сбойной проблемы, а скорее для преднамеренного избежания проверки.

  2. Save () по-прежнему не работает!У вас есть beforeSave(); в вашей модели или модели приложения?Всегда дважды проверяйте этот метод и, что еще более важно, убедитесь, что он возвращает true.

  3. Проверка при создании или обновлении CakePHP имеет ключ 'on', который будет использоваться в вашем$validate массив.Это позволяет вам указать, следует ли применять правило при создании новой записи или при обновлении существующей записи.Например, если вы хотите проверять уникальный адрес электронной почты только при создании новой учетной записи пользователя, вы должны добавить 'on' => 'create' в ваш массив $validate.Поэтому это правило будет игнорироваться при обновлении / редактировании какого-либо пользователя.

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