Cakephp更新数据库表中的单个字段

时间:2015-01-19 14:56:25

标签: cakephp

使用cakephp 1.3是否有一个如何在数据库表中更新(而非插入)行的简单示例?

  $data = array('list_index' => $id, 'name' => $name);
  if ($this->save($data)) {
    return true;
  }
  else {
    return false;
  }

官方文档指出这是应该这样做的方式,但是,当它尝试使用现有主键进行插入时会引发错误。任何人都可以阐明这一点吗?

2 个答案:

答案 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将尝试插入而不是更新。