codeigniter 编码器4:“没有要更新的数据”异常

vs3odd8k  于 2023-02-27  发布在  其他
关注(0)|答案(3)|浏览(153)

我试着去理解CodeIniter和实体一起工作。
下面是我的代码来自InterventionController.php:

$intervention = $this->interventionsModel->find($id);
$intervention->title    = $this->request->getVar("title");
$this->interventionsModel->save($intervention);
  • 〉如果我将标题更改为表格,并且如果我单击“更新”按钮:运行良好(数据库得到更新)
  • 〉当我不改变标题,我只是点击“更新”按钮:它抛出一个异常:“没有要更新的数据。”
    如果用户没有更改任何数据,我如何使用codeingiter 4而不发生异常?
    谢谢
oug3syen

oug3syen1#

保存是update/insert的一个 Package 器,当你知道你正在更新一条记录时,你可以使用update函数,传入变量,更新就会被保存,而不管记录的属性是否已经改变。

$intervention = $this->interventionsModel->find($id);
$intervention->title    = $this->request->getVar("title");
$this->interventionsModel->update($id, [
 "title" => $intervention->title
]);

我认为模型应该有一个属性来关闭保存() Package 器的这一功能,但似乎没有。
文件:https://codeigniter.com/user_guide/models/model.html?highlight=data%20update#saving-data

xtfmy6hx

xtfmy6hx2#

尝试这个**$这个-〉对象-〉更新($id,$p);**而不是$this-〉obj-〉其中('id',$id)-〉更新($p);

u4dcyp6a

u4dcyp6a3#

您可以检查表单中的值是否为空,并使用IF条件

$intervention = $this->interventionsModel->find($id);
if($this->request->getVar("title"))
{
   $intervention->title    = $this->request->getVar("title");
   $this->interventionsModel->save($intervention);
} else {
  // title is empty or null;
}

相关问题