MySQL 数据库中的多行插入来自依赖项下拉列表

Multiple row insertion in MySQL DB from Dependency Dropdown

我正在尝试从管理员用户的依赖项下拉列表中插入所有选定的用户,但我在这里做错了。

下面是我的table结构:Table_Name:docrole

我需要插入数据如下:

这是我的代码

控制器

public function DocumentRoleStore(Request $request)
    {
        $DocRoleModel = new Docrole;
        $DocRoleModel->deptid = $request->roledepartment;
        $DocRoleModel->accessto = $request->roleuser;
        $DocRoleModel->uploadby = $request->roleassignuser;
        $DocRoleModel->save();

        $rolesassign[] = $request->roleassignuser;
        foreach($rolesassign as $key=>$name)
        {
             Docrole::insert($key);
        }

return redirect()->back()->with('status','Role added successfully');

blade 查看

<div class="container mt-4">
        <form action="/document-role-data" method="post">
            @csrf
            <div class="row">
                <div class="col-lg-6 offset-lg-3 mb-3">
                    <select class="form-select form-control" name="roleuser">
                        <option selected>Select User</option>
                        @foreach ($usersdata as $item)
                            <option value="{{$item->username}}">{{$item->username}}</option>
                        @endforeach
                    </select>
                </div>
                <div class="col-lg-6">
                    <select class="form-select form-control" name="roledepartment" id="Role-Department">

                        <option selected>Select Department</option>
                        <option value="1">All Departments</option>
                        @foreach ($departmentDatas as $item)
                            <option value="{{$item->deptid}}">{{$item->deptname}}</option>
                        @endforeach
                    </select>
                </div>
                <div class="col-lg-6">
                    <select class="form-select form-control" id="employeelist" required multiple name="roleassignuser[]">
                        <option  selected="false">Select User</option>
                    </select>

                </div>

                <div class="col-lg-12">
                    <button type="submit" class="btn btn-primary float-right mt-4">Submit</button>
                </div>
            </div>
        </form>
    </div>

我相信你的 DocumentRoleStore() 函数应该像...

public function DocumentRoleStore(Request $request)
{
    foreach($request->roleassignuser as $roleUser) {
        Docrole::create([
            'deptid' => $request->roledepartmen,
            'accessto' => $request->roleuser,
            'uploadby' => $roleUser
        ]);
    }

    return redirect()->back()->with('status','Role added successfully');
}

这里我使用了模型class的Create()方法,这需要在模型中启用批量赋值。要启用批量分配,您可以将以下代码添加到 Docrole class.

protected $fillable = ['deptid', 'accessto', 'uploadby'];