【发布时间】:2017-11-25 14:22:54
【问题描述】:
我想保存我的数组数据,但是当我尝试使用 foreach 循环时,它只保存最后的记录。
这是表单刀片(没有不必要的 html 代码);
@foreach($categories as $key=>$category)
<input type="hidden" name="menusettings[{{$key}}][menu_name]" value="{{$category->category_name}}">
<input type="hidden" name="menusettings[{{$key}}][menu_slug]" value="category/{{$category->category_slug}}" >
<input type="checkbox" checked name="menusettings[{{$key}}][menu_status]">
<input type="number" value="$i" name="menusettings[{{$key}}][menu_order]" >
@endforeach
和控制器; 公共函数 postUpdateMenu(请求 $requests){
$menu = new Menu;
$request = $requests->get('menusettings');
foreach ($request as $reques) {
$menu_status = isset($reques['menu_status']) ? 1 : 0;
$menu->menu_name = $reques['menu_name'];
$menu->menu_slug = $reques['menu_slug'];
$menu->menu_status = $menu_status;
$menu->menu_order = $reques['menu_order'];
$menu->save();
}
return back();
}
有什么建议吗?
【问题讨论】:
-
将
$menu = new Menu;放入循环中 -
那是因为你把
$menu = new Menu放在你的循环之外,这样,laravel 创建一个菜单项,然后在每个循环中更新它 -
@Zoran 和 am05mhz 非常感谢你
标签: php laravel-5 laravel-5.5