我在前端使用拖放操作调用Laravel(5.3)API来更新数据库。这工作正常,但我注意到这个方法也改变了该项的id
。我的一些其他可排序模型使用多态关系,当我使用下面的代码时它会中断。
public function sort(SocialMediaItemRequest $request)
{
$icons = Auth::user()->socialmediaicons;
$icons->each(function ($icon, $index) use ($request) {
$icon->update($request->icons[$index], ['list_order' => $icon->list_order]);
});
return fractal()->collection($icons, new SocialMediaIconsTransformer())->toArray();
}
我也试过
$icons->each(function ($icon) use ($request) {
$icon->update(['order' => $request->order]);
});
但这也不起作用。我想要的就是更改与list_order
相关联的user_id
字段。
答案 0 :(得分:0)
我在Reddit上得到了一些帮助,这是我正在使用的最终解决方案:
public function sort(Request $request)
{
foreach ($request->icons as $icon) {
SocialMediaIcon::where('id', $icon['id'])->update(['list_order' => $icon['list_order']]);
}
return fractal()->collection(Auth::user()->socialmediaicons, new SocialMediaIconsTransformer())->toArray();
}