我的 Laravel 更新操作为 true
返回 dd($data)
。但我希望它返回更新的数据。如何更改它以获得该输出?我有一个条件,应该直接在模型上调用更新。有什么建议吗?
$data = FileLogs::find($id)->update([
'orderId' => $request->orderId,
'fileId' => $request->fileId,
'status' => $request->status
]);
答案 0 :(得分:2)
试试这个
$data = tap(FileLogs::find($id))
->update(['orderId' => $request->orderId, 'fileId' => $request->fileId, 'status' => $request->status])
->first();
dd($data);
答案 1 :(得分:0)
首先更新数据,然后再次获取数据
$data=FileLogs::find($id)->update(['orderId'=>$request->orderId,'fileId'=>$request->fileId,'status'=>$request->status]);
$updated_data=FileLogs::find($id);
dd($updated_data);
答案 2 :(得分:0)
先找到数据,然后再更新,得到这样的
$data = FileLogs::find($id);
现在像这样更新
$data->update(['orderId'=>$request->orderId,'fileId'=>$request->fileId,'status'=>$request->status]);
现在你可以对数据做任何事情
dd($data);
答案 3 :(得分:0)
这不是它的工作原理。你不能指望这个查询会返回一个对象:
$data = FileLogs::find($id)->update([
'orderId' => $request->orderId,
'fileId' => $request->fileId,
'status' => $request->status
]);
如果您只想按照问题中提到的方式使用查询生成器,则需要手动获取一个对象:
$data = FileLogs::where('id', $id)->first();
通过 Eloquent,您可以使用 updateOrCreate()
:
$data = FileLogs::where('id', $id)->updateOrCreate([
'orderId' => $request->orderId,
'fileId' => $request->fileId,
'status' => $request->status
]);
这将返回一个对象。 update()
将返回布尔值,因此您不能在此处使用它。