Будет ли метод сохранения в классе модели Cakephp выбирать между созданием и обновлением записи? - PullRequest
2 голосов
/ 10 июля 2009

По сути, я хочу добиться того же, что и ON DUPLICATE KEY в MySQL.

Вот надуманный пример:

$rec = array('Foo' => array(
  'id' => 999,  // Assume there isn't already a record with this id
  'website' => 'google'
));
$this->Foo->save($rec);

// save with different 'website' value
$rec['Foo']['website'] = 'stackoverflow';
$this->Foo->save($rec);

Обновляет ли последняя строка запись, которая была создана всего на несколько строк?

1 Ответ

10 голосов
/ 10 июля 2009

Если вы позвоните save(), предоставив запись с существующим id (или другим первичным ключом), он обновится, в противном случае будет создана новая запись.

Так что в вашем случае, да, это обновит запись, которая была сначала создана сверху.

Обновление

Вот подтверждающая документация :

Создание или обновление контролируется поле идентификатора модели. Если $ Model-> id установить, запись с этим первичным ключом обновляется. В противном случае новая запись создано.

В соответствии с документацией для Model::save().

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