【问题标题】:Undefined offset:1- Laravel Error exception未定义的偏移量:1- Laravel 错误异常
【发布时间】:2016-04-28 11:58:16
【问题描述】:

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

【问题讨论】:

  • 谁能帮我解决这个问题?我真的被困住了。
  • "Undefined offset: 1" 表示数组有问题
  • 你能说明你是如何从控制器中取出 $roledatas 数组的吗?

标签: php mysql laravel-5


【解决方案1】:

你的控制器中的循环从 0 到 count($data['admin_sub_menu_id']),你确定提交的 $admin_menu_id 的数量对应于 count($data['admin_sub_menu_id']) 吗? 否则,您将始终收到该错误。

我建议你有 2 个循环,控制 admin_menu_id 的外循环和控制 admin_sub_menu_id 的内循环!!

【讨论】:

  • 感谢您的建议.. 我知道这两个数字不对应,这就是错误背后的原因,但我真的不知道如何制作 2 个无错误循环!!
猜你喜欢
  • 1970-01-01
  • 2021-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多