未定义的偏移量:1- Laravel Error异常

时间:2016-04-28 11:58:16

标签: php mysql laravel-5

我知道有几个链接提到了这个错误,但我仍然无法找到问题的确切解决方案。我有两个名为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和这些阵列游戏全新!请帮助我解决这个问题。

1 个答案:

答案 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 !!

相关问题