我有一个页面列出了我的用户数据库表中的所有用户。我目前正在遍历我的用户数组,并在相应的表字段中输出每个用户的对象属性。在最后一个字段中,它显示登录用户有权访问的操作。我需要一些帮助来修改它以满足我的其他需求。
我目前拥有它,如果当前登录的用户和正在显示的数组中的用户相同,那么它不会以他们不会意外删除自己的方式显示图标。我不想显示的编辑图标,因为他们无论如何都可以转到他们的个人资料并编辑自己。我想保留这一点。
我想做的是获取此字段,如果当前登录的用户和正在显示的数组中的用户具有相同的角色ID,则它无法显示操作图标。解释一下,如果当前登录用户是管理员,并且要显示的数组中的用户也是管理员,他们将无法删除该用户。
此外,如果当前登录用户的角色 ID 低于正在显示的数组中的用户,则它也不会显示操作。为了解释这一点,我将使用以下示例。如果当前登录用户的角色 ID 仅为 4(管理员),则他们将无法删除角色 ID 为 5(所有者)的用户。
<tbody>
@foreach($users as $user)
<tr>
<td class="center">{{ $user->id }}</td>
<td>{{ $user->getFullName() }}</td>
<td>{{ $user->email_address }}</td>
<td>{{ $user->username }}</td>
<td>{{ $user->role->role_name }}</td>
<td>{{ $user->status->status_name }}</td>
<td class="center">
@if ( $user->id != Auth::id())
<a data-original-title="Edit" href="{{ route('backstage.users.edit', $user->id) }}" data-toggle="tooltip" title="" class="tooltips"><i class="fa fa-pencil"></i></a>
<a data-original-title="Delete" href="{{ route('backstage.users.destroy', $user->id) }}" data-toggle="tooltip" title="" class="tooltips js-ajax-delete"><i class="fa fa-trash-o"></i></a>
@endif
</td>
</tr>
@endforeach
</tbody>
下面是用户对象的预格式化数组。我只包括虚拟用户。
array(51) {
[0]=>
array(13) {
["id"]=> string(1) "1"
["first_name"]=> string(7) "Will"
["last_name"]=> string(8) "Stevens"
["username"]=> string(10) "wstevens"
["email_address"]=> string(20) "wstevens@gmail.com"
["avatar"]=> string(10) "wstevens"
["role_id"]=> string(1) "4"
["status_id"]=> string(1) "1"
["created_at"]=> string(19) "2014-11-26 22:27:38"
["updated_at"]=> string(19) "2014-11-26 22:27:38"
["deleted_at"]=> NULL
["role"]=>
array(5) {
["id"]=> string(1) "4"
["role_name"]=> string(5) "Owner"
["created_at"]=> string(19) "2014-11-26 22:27:38"
["updated_at"]=> string(19) "2014-11-26 22:27:38"
["deleted_at"]=> NULL
}
["status"]=>
array(5) {
["id"]=> string(1) "1"
["status_name"]=> string(6) "Active"
["created_at"]=> string(19) "2014-11-26 22:27:38"
["updated_at"]=> string(19) "2014-11-26 22:27:38"
["deleted_at"]=> NULL
}
}
[1]=>
array(13) {
["id"]=> string(1) "2"
["first_name"]=> string(6) "Furman"
["last_name"]=> string(8) "O'Reilly"
["username"]=> string(12) "wyman.haylie"
["email_address"]=> string(19) "pearlie17@yahoo.com"
["avatar"]=> string(8) "ikyyyhzn"
["role_id"]=> string(1) "2"
["status_id"]=> string(1) "2"
["created_at"]=> string(19) "2014-11-26 22:27:38"
["updated_at"]=> string(19) "2014-11-26 22:27:38"
["deleted_at"]=> NULL
["role"]=>
array(5) {
["id"]=> string(1) "2"
["role_name"]=> string(6) "Editor"
["created_at"]=> string(19) "2014-11-26 22:27:38"
["updated_at"]=> string(19) "2014-11-26 22:27:38"
["deleted_at"]=> NULL
}
["status"]=>
array(5) {
["id"]=> string(1) "2"
["status_name"]=> string(8) "Inactive"
["created_at"]=> string(19) "2014-11-26 22:27:38"
["updated_at"]=> string(19) "2014-11-26 22:27:38"
["deleted_at"]=> NULL
}
}
}
您需要
将@if
语句的条件更改为:
@if($user->role['id'] < Auth::user()->role['id']) {
<a data-original-title="Edit" href="{{ route('backstage.users.edit', $user->id) }}" data-toggle="tooltip" title="" class="tooltips"><i class="fa fa-pencil"></i></a>
<a data-original-title="Delete" href="{{ route('backstage.users.destroy', $user->id) }}" data-toggle="tooltip" title="" class="tooltips js-ajax-delete"><i class="fa fa-trash-o"></i></a>
@endif