php - 如何在 Laravel 中使用 update() 功能?
问题描述
在我的商店功能中,我必须搜索特定人的姓名,因此:
$person = DB::select("select p.* from persons p where concat_ws(', ' ,p.family_name,concat_ws(' ',concat_ws(' ',p.first_name,p.middle_name),p.third_name)) like ?", [$request['person_name']]);
如果此人存在,我必须更新此人并且此人有效:
Person::where('id', $person[0]->id)->update(['status' => 'Active']);
但不是这个:
$person[0]->status = 'Active';
$pArray = json_decode(json_encode($person[0]), true);
$per = new Person($pArray);
$per->update();
解决方案
由于您已经创建了一个新的模型实例,因此您需要调用该save()
方法。
$per = new Person($pArray);
$per->save();
或者,您可以使用update()
将数据传递到现有模型中。但首先,您需要检索要更新的模型。
$per = Person::find($pArray['id']);
$per->update($pArray);
推荐阅读
- python-3.x - 如果 Python-kafka 管理客户端尚不存在 Kafka 主题,请创建它?
- spring-boot - 如何在 JUnit 5 测试和 SpringBoot 2.3.1 中使用 Testcontainers 的 Dynalite 模块
- python - Pandas read_csv 函数:有没有办法根据索引将特定列读取为字符串?
- python - 如何将 while 循环与“try”和“except”一起使用?
- java - 如何将 List 对象的值设置为另一个 List 对象?
- c++ - async_write 连续两次出现问题
- java - 假装客户端内部服务器异常(其余模板也不起作用)
- terraform - Terraform 重命名状态文件
- java - 如何将字符串数组 [] 元素转换/添加到列表中
[] 大批 - javascript - materialize-css 选择样式 display:none 应用于 ckeditor 对话