如何在 CakePHP 2.x 中使用自定义主键调用 Model::save()?
How can I call Model::save() using a custom primary key in CakePHP 2.x?
我要更新一条记录:
//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()
。
以下应该有效:
$this->Recipe->primaryKey = 'tmp_id';
$this->Recipe->id = 2;
$this->Recipe->save($this->data);
或者您可以通过将 tmp_id
定义为模型中的主键来永久更改:
class Recipe extends AppModel {
public $primaryKey = 'tmp_id';
}
更新cakephp中的语句 :
public function update_data($tmp_id){
if($this->request->is('post'){
$this->Recipe->id = $tmp_id;
$this->Recipe->save($this->data);
}
}
此处update_data是虚拟函数供您理解。
我要更新一条记录:
//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()
。
以下应该有效:
$this->Recipe->primaryKey = 'tmp_id';
$this->Recipe->id = 2;
$this->Recipe->save($this->data);
或者您可以通过将 tmp_id
定义为模型中的主键来永久更改:
class Recipe extends AppModel {
public $primaryKey = 'tmp_id';
}
更新cakephp中的语句 :
public function update_data($tmp_id){
if($this->request->is('post'){
$this->Recipe->id = $tmp_id;
$this->Recipe->save($this->data);
}
}
此处update_data是虚拟函数供您理解。