В чем разница между этими двумя способами сохранения данных в CakePHP - PullRequest
0 голосов
/ 01 марта 2012

В чем разница между этими двумя способами сохранения данных в CakePHP

$this->request->data['User']['status'] = 'Active';

$this->User->saveField('status', 'Active');

Ответы [ 2 ]

2 голосов
/ 01 марта 2012

Разница в том, что эта строка кода фактически не сохраняет никаких данных:

$this->request->data['User']['status'] = 'Active';

Это просто изменение поля в этой модели.

Если вы обновите это поле, а затем выполните $this->User->save(), вы сохраните всю модель (включая только что измененное поле).

Когда вы используете $this->Model->saveField(field,value), вы фактически обновляете источник данных новым значением поля для текущей загруженной модели.

Возможно, вы захотите использовать saveField() в ситуациях, когда вы не загрузили все поля данных, и использование save() не пройдет проверку или перезапишет существующие значения пустыми / нулевыми значениями.

1 голос
/ 01 марта 2012
$this->request->data['User']['status'] = 'Active';

Это означает, что вы вызовете save () или saveAll () после. Эти методы проверят достоверность данных.

$this->User->saveField('status', 'Active');

Проверка данных не производится, и вам нужно установить $ this-> User-> id перед вызовом saveField.

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