如何更新CakePHP中的现有记录?

use*_*590 7 cakephp

我正在使用CakePHP并遵循其教程.我想更新一条记录,但是当我创建它时创建另一条记录而不是更新.根据教程我的代码如下

$data = array('Id' => $id, 'Approved' => 12);
$this->names->save($data);
Run Code Online (Sandbox Code Playgroud)

它导致了

SQLSTATE [23000]:完整性约束违规:1062 4密钥的重复条目 PRIMARY

如果我这样做

$this->names->Id=$id;
Run Code Online (Sandbox Code Playgroud)

它增加了一项新纪录.我该怎么解决这个问题?

Muh*_*san 12

$this->names->id=$id;                
$this->names->set(array('Approved'=>12));                
$this->names->save();
Run Code Online (Sandbox Code Playgroud)

  • 按照上面的代码片段,它“创建新记录,尚未更新”。 (2认同)