cakephp更新字段

时间:2011-03-05 07:13:28

标签: php cakephp

如何强制蛋糕更新字段而不插入新记录。

如果db

中不存在id,它应该失败

我发现强行插入我可以'updated' => false,所以如果我'updated' => true它会工作

3 个答案:

答案 0 :(得分:17)

如果您只想更新字段,请使用模型的saveField方法

$this->Order->id    = $id;
$this->Order->saveField('status', 'VOID');

参考:http://book.cakephp.org/2.0/en/models/saving-your-data.html

答案 1 :(得分:4)

//Create: id isn't set or is null
$this->Recipe->create();
$this->Recipe->save($this->data);

//Update: id is set to a numerical value 


$this->Recipe->id = 2;
$this->Recipe->save($this->data);

请参阅http://book.cakephp.org/2.0/en/models/saving-your-data.html

答案 2 :(得分:0)

使用Model :: exists

要确保记录确实存在,请使用Model::Exists。例如:

function updateFoo($id, $value) {
    if (!$this->exists($id) {
        return false;
    }

    $this->id = $id;
    return $this->saveField('foo', $value);
}

这样就行了:

$false = $model->updateFoo(false, $value);
$false = $model->updateFoo(0, $value);
$false = $model->updateFoo('doesnotexist', $value);
$true = $model->updateFoo('doesexist', $value);