使用cakephp 1.3是否有一个如何在数据库表中更新(而非插入)行的简单示例?
$data = array('list_index' => $id, 'name' => $name);
if ($this->save($data)) {
return true;
}
else {
return false;
}
官方文档指出这是应该这样做的方式,但是,当它尝试使用现有主键进行插入时会引发错误。任何人都可以阐明这一点吗?
答案 0 :(得分:0)
您可以使用:
$this->Post->read(null, 1);
$this->Post->set(array(
'title' => 'New title',
'published' => false
));
$this->Post->save();
或者
$this->Recipe->id = 2;
$this->Recipe->save($this->data);
从1.3手册:
http://book.cakephp.org/1.3/en/The-Manual/Developing-with-CakePHP/Models.html
答案 1 :(得分:0)
确保您的模型具有核心primaryKey
值。
在这种情况下,它应该是
class MyModel extends AppModel {
public $primaryKey = 'list_index';
// ...
}
如果你不这样做,CakePHP将尝试插入而不是更新。