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';