我需要从数据库中获取一个元素,但是我无法通过FIND方法获取它,因为FIND仅通过primaryKey可以找到它,而我不需要的是我的primaryKey。所以我确实是这样的:
$user = Pac::find($request->pac_id);
$element = query()->where('med_cart', $user->pac_id)->get();
$element->med_obs = $request->med_obs;
$element->save(); // error
Run Code Online (Sandbox Code Playgroud)
现在我需要保存该元素,但是,我不能使用SAVE方法,因为我认为它与FIND和FINDORFAIL完全相关(如果有人知道,请向我解释可以使用SAVE方法的方法)。
我该如何保存它们?还是有其他方法可以做到?
我认为,因为我需要使用除primaryKey以外的数据来获取元素,然后将其保存,所以我不能使用FIND或FINDORFAIL。
该函数->find()返回一个Eloquent Model实例,然后您可以调用->save()模型实例。
您正在使用->get()哪个返回Collection。
要更新您的查询(可针对一个或多个条目)刚刚通过替换直接从QueryBuilder的执行UPDATE语句->get()用->update(['med_obs' => $request->med_obs])。
请注意,在执行此操作时,您现在正在使用Fluent查询,而不是雄辩的。这意味着boot不会评估您可能在模型功能中定义的任何逻辑。
如果确定只有一个结果,则可以追加->first()到查询中,这将返回与->where子句匹配的第一个结果的模型。然后可以调用->save()它:
$user = Pac::find($request->pac_id);
$element = query()->where('med_cart', $user->pac_id)->first();
$element->med_obs = $request->med_obs;
$element->save();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34 次 |
| 最近记录: |