发送数据时 blade 中的重复数据
duplicate data in blade when send data
我正在尝试在我的编辑中显示我的所有角色 blade 并使用复选框,这会检查是否已检查此角色是否具有此权限。
我的问题是当向这个角色发送数据权限和权限时,所有权限名称都是重复的。
我正在使用 laravel-permission/spatie
设置角色和权限
在我的控制器中我有这个:
public function edit($id)
{
$role = Role::find($id);
$permissions = Permission::all();
$permissionAssigned = Role::find($id)->givePermissionTo();
return view('opciones.roles.edit', ['role' => $role, 'permissions' => $permissions,
'permissionAssigned' => $permissionAssigned["permissions"] ]);
}
在我的 blade 我有这个:
<h3>Permissions</h3>
<div class="row flex-row justify-content-center">
@foreach($permissions as $permission)
@foreach ($permissionAssigned as $asigned)
@if($permission->name == $asigned->name)
<div class="form-check p-4">
<input class="form-check-input" checked type="checkbox" name="permission[]" value="{{ $permission->name }}" id="flexCheckDefault">
<label class="form-check-label" for="flexCheckDefault">{{ $permission->name }}</label>
</div>
@endif
@endforeach
<div class="form-check p-4">
<input class="form-check-input" type="checkbox" name="permission[]" value="{{ $permission->name }}" id="flexCheckDefault">
<label class="form-check-label" for="flexCheckDefault">{{ $permission->name }}</label>
</div>
@endforeach
</div>
我不知道我做错了。我知道我有逻辑问题,但我无法解决它。
感谢自述文件,抱歉我的英语不好
您只需要从控制器传递 Role
以及关联的 Permissions
和所有 Perrmissions
进行比较。
public function edit($id)
{
$role = Role::with('permissions')->find($id);
$permissions = Permission::all();
return view('opciones.roles.edit', ['role' => $role]);
}
在视图中
<h3>Permissions</h3>
<div class="row flex-row justify-content-center">
@foreach($permissions as $permission)
<div class="form-check p-4">
<input type="checkbox"
id="flexCheckDefault"
class="form-check-input"
name="permission[]"
value="{{ $permission->name }}"
@checked((old($permission->name, $role->permissions->contains('name', $permission->name)) />
<label class="form-check-label" for="flexCheckDefault">{{ $permission->name }}</label>
</div>
@endforeach
</div>
我正在尝试在我的编辑中显示我的所有角色 blade 并使用复选框,这会检查是否已检查此角色是否具有此权限。
我的问题是当向这个角色发送数据权限和权限时,所有权限名称都是重复的。
我正在使用 laravel-permission/spatie
设置角色和权限在我的控制器中我有这个:
public function edit($id)
{
$role = Role::find($id);
$permissions = Permission::all();
$permissionAssigned = Role::find($id)->givePermissionTo();
return view('opciones.roles.edit', ['role' => $role, 'permissions' => $permissions,
'permissionAssigned' => $permissionAssigned["permissions"] ]);
}
在我的 blade 我有这个:
<h3>Permissions</h3>
<div class="row flex-row justify-content-center">
@foreach($permissions as $permission)
@foreach ($permissionAssigned as $asigned)
@if($permission->name == $asigned->name)
<div class="form-check p-4">
<input class="form-check-input" checked type="checkbox" name="permission[]" value="{{ $permission->name }}" id="flexCheckDefault">
<label class="form-check-label" for="flexCheckDefault">{{ $permission->name }}</label>
</div>
@endif
@endforeach
<div class="form-check p-4">
<input class="form-check-input" type="checkbox" name="permission[]" value="{{ $permission->name }}" id="flexCheckDefault">
<label class="form-check-label" for="flexCheckDefault">{{ $permission->name }}</label>
</div>
@endforeach
</div>
我不知道我做错了。我知道我有逻辑问题,但我无法解决它。
感谢自述文件,抱歉我的英语不好
您只需要从控制器传递 Role
以及关联的 Permissions
和所有 Perrmissions
进行比较。
public function edit($id)
{
$role = Role::with('permissions')->find($id);
$permissions = Permission::all();
return view('opciones.roles.edit', ['role' => $role]);
}
在视图中
<h3>Permissions</h3>
<div class="row flex-row justify-content-center">
@foreach($permissions as $permission)
<div class="form-check p-4">
<input type="checkbox"
id="flexCheckDefault"
class="form-check-input"
name="permission[]"
value="{{ $permission->name }}"
@checked((old($permission->name, $role->permissions->contains('name', $permission->name)) />
<label class="form-check-label" for="flexCheckDefault">{{ $permission->name }}</label>
</div>
@endforeach
</div>