php - undefined offset :1- Laravel Error exception

标签 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

Controller :-

$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 和这些数组游戏完全陌生!请帮我解决这个问题。

最佳答案

Controller 中的循环从 0 到 count($data['admin_sub_menu_id']),您确定提交的 $admin_menu_id 的数量对应于 count($data['admin_sub_menu_id']) 吗? 如果没有,您将始终收到该错误。

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

关于php - undefined offset :1- Laravel Error exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36913979/

相关文章:

php - 搜索查询未返回所需结果

MySQL函数将UTC时间字符串转换为DATETIME

laravel - 通过另一个(外部)Laravel 项目使用 Laravel API

php - 在 Laravel 5.7 中限制登录尝试

php - MYSQL中的选择——选择所有记录

php - 在 AngularJS 中循环遍历 JSON 元素

php - htmlentities 和 htmlspecialchars 拒绝处理字符串

javascript - PHP (AJAX) 的对象数组

mysql - 如何选择开始到(开始+长度)之间的计数

php - 备份管理器的 ShellProcessFailed 错误 - Laravel