1

我想更新一条记录:

//Update: id is set to a numerical value
$this->Recipe->id = 2;
$this->Recipe->save($this->data);

这工作正常。

但是,如果我尝试根据以下内容更新记录,它将不起作用tmp_id

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

我知道功能Model::updateAll()。但我想Model::save()改用。

4

2 回答 2

1

以下应该有效:

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

或者,您可以通过tmp_id在模型中定义为主键来永久更改:

class Recipe extends AppModel {
    public $primaryKey = 'tmp_id';
}
于 2015-12-23T11:18:49.823 回答
-1

cakephp 中的更新语句

public function update_data($tmp_id){

if($this->request->is('post'){

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

}

}

这里 update_data 是虚拟函数,供您理解。

于 2015-12-23T11:49:59.567 回答