Laravel重复复选框

waxmsbnn  于 2022-12-14  发布在  其他
关注(0)|答案(1)|浏览(179)

我正在创建一个laravel应用程序。我想编辑表外的信息。此表通过透视表链接到另一个表。因为我想将多个“角色”添加到“文件”中。
我希望能够选中已连接到特定文件的角色的复选框。
如果我试图编辑一个有多个角色的文件,复选框会乘以连接到该文件的角色的数量。1个角色=正常数量的复选框,2个角色=所有角色的2个复选框。我还注意到,第一个连接的角色选中了第一个重复的复选框,但第二个连接的角色选中了第二个重复的复选框。第三个也会出现这种情况,依此类推。

表一(文件):

表b(角色):

数据透视表:

编辑.blade代码(仅复选框):

<div class="form-group">
                <label>{{('Role')}}</label>
                @foreach($allroles as $rol)
                @foreach($file_role as $file_roles)
                <label><input name="roles[]" type="checkbox" value="{{$rol->id}}" @if($rol->id == $file_roles->role_id) checked=checked @endif>{{$rol->name}}</label>
                @endforeach
                @endforeach
            </div>

控制器:

public function edit($id, Request $request, )
    {
        $files = File::all();
        $fileEdit = File::find($id);
        $languages = Language::all();
        $tags = Tag::all();
        $subfolder = Subfolder::all();
     
        $users = User::all();
        $roles = Role::all();
        $allroles = Role::all();
        $file_role = File_Role::where('file_id', '=', $id)->get();
        $file_subfolder = File_Subfolder::all();
       // dd($file_role);
        return view('admin.file.index', compact('files', 'fileEdit', 'languages', 'tags', 'subfolder' ,'users', 'roles', 'allroles' ,'file_role', 'file_subfolder'));
    }

如果我需要添加任何额外的信息,我会很乐意这样做

8ulbf1ek

8ulbf1ek1#

<div class="form-group">
                <label>{{('Role')}}</label>
                @foreach($allroles as $rol)
                
                <label><input name="roles[]" type="checkbox" value="{{$rol->id}}" @if($rol->id == $file_roles->role_id) checked=checked @endif>{{$rol->name}}</label>
                @endforeach
              
            </div>

我只需要删除1个foreach。这使它循环通过它两次

相关问题