我有3个表user
- > id,名称,密码,roles
- > id,角色,role_user
- > role_id,user_id
现在,如果我想在视图页面中显示相关数据,则意味着与用户相关的角色..如何在视图中执行此操作? 表示我想显示用户是否有角色,否则将被检查,否则将取消选中
这是我的控制器:
$users = User::all();
$roles = Role::all();
return view("Permission::assign_role",compact('users','roles'));
查看页面
<table class="table">
<thead>
<tr>
<th>SL No</th>
<th>Name</th>
<th>Role</th>
</tr>
</thead>
<tbody>
<?php $i = 1; ?>
@foreach($users->roles() as $row)
<tr>
<td>{{$i}}</td>
<td>{{$row->name}}</td>
<td><input type="checkbox" name="role_id" checked> $role->role</td>
</tr>
<?php $i++; ?>
@endforeach
</tbody>
</table>
答案 0 :(得分:0)
Eager load数据:
$users = User::with('roles')->get();
return view("Permission::assign_role", compact('users'));
在视图中,如果要检查用户是否具有特定角色,则可以执行以下操作:
@if ($user->roles->contains($roleId))
如果您想迭代用户的角色:
@foreach($users->roles as $role)
{{ $role->name }}
答案 1 :(得分:0)
我如何使用我的应用程序:
用户模型:
public function roles() {
return $this->belongsToMany(Role::class);
}
角色模型:
public function user() {
return $this->belongsToMany(User::class);
}
在我的控制器中:
$users = User::all();
在我的视图中
@foreach($users as $user)
@foreach($user->roles() as $role)
{{$role->name}}
@endforeach
@endforeach