我在拉拉维尔做了一个项目。在我的管理面板上,我可以查看用户列表并执行CRUD操作,一个操作是我可以使用一个简单的按钮在“用户”和“管理员”之间更改用户的角色。现在我不希望登录用户能够降级他们自己的权限,因为我显然会收到错误,因为它们本质上是他们不属于的地方。
我的实际表格代码:
@if($users->count() > 0)
@foreach ($users as $user)
<tr>
<td><img src="{{ asset($user->avatar) }}" alt="Avatar" width="45px" height="45px" style="border-radius: 50%"></td>
<td>{{ $user->firstname }}</td>
<td>{{ $user->lastname }}</td>
<td>{{ $user->username }}</td>
<td>{{ $user->email }}</td>
<td>
@if($user->admin)
<a class="button warning small warnBtn" href="{{ route('user.not.admin',['id' => $user->id]) }}" class="btn btn-xs btn-danger"><i class="fas fa-hand-point-down fa-lg" style="color: white"></i> Make User</a>
@else
<a class="button warning small warnBtn" href="{{ route('user.admin',['id' => $user->id]) }}" class="btn btn-xs btn-success"><i class="fas fa-hand-point-up fa-lg" style="color: white"></i> Make Admin</a>
@endif</td>
<td align="center"><a href="{{ route('user.edit', [$user->id]) }}"class="btn.btn-info"><i class="fas fa-edit fa-lg" style="color: green"></i></a></td>
<td align="center"><a href="{{ route('user.delete', [$user->id]) }}"><i class="fas fa-trash-alt fa-lg" style="color: red"></i></a></td>
</tr>
@endforeach
@else
<tr>
<th colspan="8"><h2 align="center">There Are Currently No Users</h2></th>
</tr>
@endif
如何隐藏按钮,只是在登录用户的行上?我试过了:
@if($user->admin && !Auth::user())//Show the button
显然,这完全是我告诉它的,并且落入了else语句,并为每个管理员更改了按钮。
我其实很困惑,这可能是最简单的解决方案。如果有人提示,那就太棒了,谢谢。
答案 0 :(得分:1)
您可以比较他们的ID,以查看该行的用户是否与登录用户相同。
@if($user->admin && $user->id != Auth::user()->id) // Show the button
答案 1 :(得分:1)
您只需要比较记录的用户是否与foreach
内的呈现用户不同。
@if($user->admin && $user->id != Auth::user()->id) // Show the button
<a class="button warning small warnBtn" href="{{ route('user.not.admin',['id' => $user->id]) }}" class="btn btn-xs btn-danger">
<i class="fas fa-hand-point-down fa-lg" style="color: white></i>
Make User
</a>
@else
[...]
@endif
然后,如果它们没有不同,则用户将无法降级其权限。您是否考虑将这些按钮更改为选择?