Cakephp模型类中的save方法会选择创建和更新记录吗?

all*_*ode 2 php cakephp

基本上,我想在MySQL中实现与ON DUPLICATE KEY相同的功能.

这是一个人为的例子:

$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);

最后一行是否更新了几行创建的记录?

Pet*_*ter 10

如果你打电话save(),提供一个现有的记录id(或任何主键),它将更新,否则它将创建一个新的记录.

所以在你的情况下,是的,它会更新最初在顶部创建的记录.

更新

这是支持文档:

创建或更新由模型的id字段控制.如果设置了$ Model-> id,则更新具有此主键的记录.否则,将创建新记录.

根据文件Model::save().