首页 > 解决方案 > 如何在 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();

标签: phplaraveleloquent

解决方案


由于您已经创建了一个新的模型实例,因此您需要调用该save()方法。

$per = new Person($pArray);
$per->save();

或者,您可以使用update()将数据传递到现有模型中。但首先,您需要检索要更新的模型。

$per = Person::find($pArray['id']);
$per->update($pArray);

推荐阅读