我找不到用数据库中的数据填充复选框的方法。我有角色表(id和角色名称),用户表(id,名称,姓氏等)和数据透视表(user_id,role_id)。如何填充显示用户是admin / user还是两者兼有的
?谢谢。
控制器
{
$total_row = $data->count();
$output = "";
if ($total_row > 0) {
foreach ($data as $row) {
$roleNames = '';
foreach (Role::all() as $roles1) {
$roleNames .= $roles1->role != null ? $roles1->role.' '.'<input type="checkbox" class="checkbox" id="checkboxId">'.' ' : '';
// if ($roles1 = id(1)) {
// return '<input type="checkbox" class="checkbox" id="checkboxId" checked>';
// }
}
$output .= '
<tr>
<td>'.$row->surname.'</td>
<td>'.$row->name.'</td>
<td>'.$row->phone.'</td>
<td>'.$roleNames.'</td>
<td><button type="button" id="rowId" class="remove-button btn btn-danger" data-id="'.$row->id.'">
<div class="close">x</div>
</button></td>
</tr>
';
}
} else {
$output = '
<tr>
<td align="center" colspan="5">Nema podataka</td>
</tr>
';
}
return array(
'table_data' => $output,
'total_data' => $total_row,
);
}
答案 0 :(得分:0)
最好使用View。
您可以尝试以下方法:
$roles = Role::all();
foreach ($data as $row) {
$roleNames = '';
$rowRoles = $row->roles->pluck('id');
foreach($roles as $role){
$roleNames .= '<input type="checkbox" name="roles[]" value="' . $role->id . '" ' . (in_array($role->id, $rowRoles) ? 'checked' : '') . '/> ' . $role->name;
}
}
您需要在用户模型中具有belongsToMany关系“角色”。
public function roles()
{
return $this->belongsToMany('\App\Role', 'pivot_table_name');
}