Проблема с обновлением записи в базе данных - PullRequest
0 голосов
/ 07 июня 2011

У меня проблема с обновлением пользовательских данных в 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-> data (например, неверный пароль, адрес электронной почты и т. Д.).Как я могу это исправить, чтобы я мог обновлять только те поля, которые существуют в массиве $ this-> data?

Ответы [ 2 ]

1 голос
/ 07 июня 2011

Чтобы правильно сделать это . Вы должны установить для параметра on правил проверки значение create и / или установить require на false.

Для быстрого исправления укажите $fieldlist полей, которые вы хотите сохранить:

$this->User->save($this->data, true, array('first_name', 'last_name', 'native_language_id'));
0 голосов
/ 07 июня 2011

вы можете сделать это:

$this->data['User']['id'] = $id

потому что ['id'] cakephp распознает массив как данные, которые обновят набор данных и не создадут новый набор данных.

...