#cakephp #cakephp-1.3 #cakephp-model #validation
#cakephp #cakephp-1.3 #cakephp-модель #проверка
Вопрос:
У меня проблема с обновлением пользовательских данных в cakephp.
Когда я отправляю форму, у меня есть эти данные в $ this-> data:
Array
(
[User] => Array
(
[first_name] => Dusan
[last_name] => Stojanovic
[native_language_id] => 25
)
)
но, когда я пытаюсь обновить ее с:
$this->User->id = $id;
$this->User->save($this->data)
модель не сохранена из-за проверки. Они пытаются проверить поля, которых нет в $this-> массиве данных (например, неверный пароль, электронная почта и т.д.). Как я могу это исправить, чтобы я мог обновлять только поля, которые существуют в $ this-> массиве данных?
Ответ №1:
Чтобы правильно сделать это, вы должны установить для on
параметра «Правила проверки» значение create
only и / или установить require
значение false
.
Для быстрого исправления укажите $fieldlist
поля, которые вы хотите сохранить:
$this->User->save($this->data, true, array('first_name', 'last_name', 'native_language_id'));
Комментарии:
1. Спасибо, это то, что мне нужно. На самом деле, мне нужно удалить required из проверки и установить значение allowEmpty.
Ответ №2:
вы можете сделать это:
$this->data['User']['id'] = $id
из-за [‘id’] cakephp распознает массив как данные, которые обновят набор данных, и не создаст новый набор данных.