cakephp, подтвердите ошибку

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

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

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам