在刀片中动态创建复选框
Posted
技术标签:
【中文标题】在刀片中动态创建复选框【英文标题】:create dynamically checkbox in blade 【发布时间】:2021-12-21 11:09:21 【问题描述】:我正在准备在我的刀片中创建复选框列表,其中包含我在DB
中拥有的所有角色。我正在循环获取所有角色,以及是否检查角色是否有我正在编辑的这个用户:
@foreach($roles as $rol)
@foreach ($selRoles as $role)
@if ($role == $rol->id)
<div class="col-md-4">
<input type="checkbox" name="rol" checked=checked class="form-check-input" value=" $rol->id " id=" $rol->id ">
$rol->name
</div>
@else
<div class="col-md-4">
<input type="checkbox" name="rol" class="form-check-input" value=" $rol->id " id=" $rol->id ">
$rol->name
</div>
@endif
@endforeach
@endforeach
使用此代码,我的问题是我的所有角色都重复了。在我的控制器中,我有这个:
public function edit(User $usuario)
$roles = Bouncer::role()->orderBy('title', 'DESC')->get();
$selRoles = $usuario->roles->pluck('id')->toArray(); //selRoles it´s roles from user
$usuario->load('roles');
return view('admin.empleados.edit', compact('usuario', 'roles','selRoles'));
并在刀片中返回它:
teleoperadora
teleoperadora
teleoperadora
repartidor
repartidor
repartidor
prueba
prueba
prueba
Jefe de equipo
Jefe de equipo
Jefe de equipo
jefa-sala
jefa-sala
jefa-sala
instalador
instalador
例如。我不知道在我的刀片中获得这个结果是我做的不好。有人可以帮帮我吗?
感谢阅读和帮助。对不起我的英语
【问题讨论】:
@AkshayGireesh 感谢您的回复,但我不太明白您告诉我的内容 【参考方案1】:您的角色会重复,因为您使用了两个 foreach
循环。您选择的角色是一个数组,因此检查角色->id 是否在该数组中就足够了:
@foreach($roles as $role)
<div class="col-md-4">
<input type="checkbox" name="rol" @if(in_array($role->id, $selRoles))checked=checked@endif class="form-check-input" value=" $role->id " id=" $role->id ">
$role->name
</div>
@endforeach
@if(in_array($role->id, $selRoles))checked=checked@endif
部分将选中复选框,如果角色的 id 在您的选定角色数组中。
【讨论】:
以上是关于在刀片中动态创建复选框的主要内容,如果未能解决你的问题,请参考以下文章
在刀片 foreach 循环中使用 JS 动态更改 div CSS 背景