我正在创建一个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'));
}
如果我需要添加任何额外的信息,我会很乐意这样做
1条答案
按热度按时间8ulbf1ek1#
我只需要删除1个foreach。这使它循环通过它两次