我知道有几个链接提到了这个错误,但我仍然无法找到问题的确切解决方案。我有两个名为admin_menu_id []和admin_sub_menu_id []的复选框,其值我想插入数据库。到目前为止,我已经这样做了: -
查看页面
@if(is_array($roledatas) && count($roledatas)>0)
<?php $count = 1;?>
@foreach($roledatas as $roleKey=>$roleVal)
<ul id="package_{{ $count }}" class="accordion-toggle parentclasstr" data-toggle="collapse" data-parent="#OrderPackages" data-target=".packageDetails{{ $count }}">
<li><input type="checkbox" id="menuChk" value= "<?php echo $id = $roleVal['id']; ?>" name="admin_menu_id[]" /><strong>{{ $roleVal['name'] }}</strong></li>
<li><i class="indicator glyphicon glyphicon-chevron-up pull-right"></i></li>
@if(isset($roleVal['child']) && is_array($roleVal['child']) && count($roleVal['child'])>0)
@foreach($roleVal['child'] as $childKey=>$childVal)
<ul class="hiddenRow collapse packageDetails{{ $count }}" bgcolor="#C1C1C1">
<li><input type="checkbox" id="submenuChk" value="<?php echo $id = $childVal['id']; ?>" name="admin_sub_menu_id[]" />{{ $childVal['name'] }}</li>
<li></li>
</ul>
@endforeach
@endif
</ul>
<?php $count++; ?>
@endforeach
@endif
控制器: -
$data = $request->all();
$user_type_id = $data['user_type_id'];
$admin_menu_id = $data['admin_menu_id'];
$admin_sub_menu_id = $data['admin_sub_menu_id'];
for ($i = 0; $i < count($data['admin_sub_menu_id']); $i++)
{
$role = new RoleMenu;
$role->user_type_id = $user_type_id;
$role->admin_menu_id = $admin_menu_id[$i];
$role->admin_sub_menu_id = $admin_sub_menu_id[$i];
$role->save();
}
当我检查一个admin_menu_id复选框和一个admin_sub_menu_id复选框时,它会插入数据,但是当尝试检查多个时,它会抛出未定义的偏移错误。 我对laravel和这些阵列游戏全新!请帮助我解决这个问题。
答案 0 :(得分:0)
你的控制器中的循环从0变为计数($ data [&#39; admin_sub_menu_id&#39;]),你确定提交的$ admin_menu_id的数量对应于count($ data [&#39; admin_sub_menu_id&# 39;])? 如果没有,你将永远得到错误。
我建议你有2个循环,外循环控制admin_menu_id,内循环控制admin_sub_menu_id !!