我想更新记录:
//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()
。
答案 0 :(得分: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';
}
答案 1 :(得分:-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为虚拟功能供您理解。