ci4 使用保存时插入或更新的先决条件是什么
ci4 what is the prerequisite for insert or update when using save
我正在尝试更新 mysql 中的记录。我的代码片段如下;
if ($this->model->save($update_post))
{ }
目前,这个查询没有更新,而是通过插入添加了一条新记录。请更新而不是插入的控制因素是什么?或者,我应该强制更新而不是使用保存吗?
非常感谢任何指点。
save()
Codeigniter 4 中的方法,先看看你在里面传递的数据。如果它包含主键,则它会更新现有记录,否则会将其插入数据库。
在你的情况下,$update_post
,
如果 $update_post
具有主键属性,则它会更新到该记录。
例子:
如果我们有 table 'POST' 列 'ID'、'name' 等。
所以里面模型 class:
$post = $this->where('id',1)->first();
$post->name = 'Updated Name';
$this->save($post);
另一个原因可能是您有一个不同的主键而不是 'id',在这种情况下,您必须在您的模型中指定这个主键 class。
$protected primaryKey = 'any_other_key';
我正在尝试更新 mysql 中的记录。我的代码片段如下;
if ($this->model->save($update_post))
{ }
目前,这个查询没有更新,而是通过插入添加了一条新记录。请更新而不是插入的控制因素是什么?或者,我应该强制更新而不是使用保存吗?
非常感谢任何指点。
save()
Codeigniter 4 中的方法,先看看你在里面传递的数据。如果它包含主键,则它会更新现有记录,否则会将其插入数据库。
在你的情况下,$update_post
,
如果 $update_post
具有主键属性,则它会更新到该记录。
例子:
如果我们有 table 'POST' 列 'ID'、'name' 等。
所以里面模型 class:
$post = $this->where('id',1)->first();
$post->name = 'Updated Name';
$this->save($post);
另一个原因可能是您有一个不同的主键而不是 'id',在这种情况下,您必须在您的模型中指定这个主键 class。
$protected primaryKey = 'any_other_key';