如何向 Laravel 中的访客用户显示或隐藏我的 Table 的一部分?
How Can I Show Or Hide Only A Part Of My Table To Guest Users In Laravel?
我有一个显示 Table 的页面,我只想隐藏我的 table 的 1 列,并且只显示给管理员用户角色。
但我想向尚未登录我网站的来宾用户显示其他栏目。
当我使用这段代码时:
<table>
<tr>
<td>
...
</td>
@if(Auth::user()->isAdmin())
<td>
only Admins Can See This Column
</td>
@endif
<td>
...
</td>
</tr>
</table>
它隐藏所有页面并重定向到登录并仅显示给管理员用户。
但我需要向未登录的 guset 用户显示没有该列的所有 table,我应该怎么做?
您可以使用 @guest
blade 的指令。
<table>
<tr>
<td>
...
</td>
@if(Auth::user()->isAdmin())
<td>
only Admins Can See This Column
</td>
@endif
@guest
<td>
This is only for guest!
</td>
@endguest
...
</td>
</tr>
</table>
我找到了解决方案:::
我们可以通过以下代码为访客隐藏并向我们的角色用户显示:
<table>
<tr>
<td>
...
</td>
@if(Auth()->check() and Auth::user()->isAdmin())
<td>
only Admins Can See This Column
</td>
@endif
<td>
...
</td>
...
</td>
</tr>
</table>
如果您想隐藏管理员用户并显示其他用户,您可以按照以下步骤操作。
在你的控制器中:-
public function index(Request $request)
{
$user = Auth::user();
if ($user->hasRole('admin')) {
$user = User::where('id', '!=', $user->id)->get();
} else {
$user = User::all();
}
return view('admin.users.index', compact('user'));
}
在您的 blade 文件中:-
@foreach($user as $users)
@if(Auth::user()->hasRole('admin'))
<tr>
<td>{{$users->id}}</td>
<td>{{$users->name}}</td>
<td>{{$users->email}}</td>
<td>{{$users->password}}</td>
<td class="text-center">
<a href="{{ route('users.edit', $users->id)}}" class="btn btn-primary btn-sm">Edit</a>
<form action="{{ route('users.destroy', $users->id)}}" method="post" style="display: inline-block">
@csrf
@method('DELETE')
<button class="btn btn-danger btn-sm" type="submit">Delete</button>
</form>
</td>
</tr>
@endif
@endforeach
我有一个显示 Table 的页面,我只想隐藏我的 table 的 1 列,并且只显示给管理员用户角色。
但我想向尚未登录我网站的来宾用户显示其他栏目。
当我使用这段代码时:
<table>
<tr>
<td>
...
</td>
@if(Auth::user()->isAdmin())
<td>
only Admins Can See This Column
</td>
@endif
<td>
...
</td>
</tr>
</table>
它隐藏所有页面并重定向到登录并仅显示给管理员用户。
但我需要向未登录的 guset 用户显示没有该列的所有 table,我应该怎么做?
您可以使用 @guest
blade 的指令。
<table>
<tr>
<td>
...
</td>
@if(Auth::user()->isAdmin())
<td>
only Admins Can See This Column
</td>
@endif
@guest
<td>
This is only for guest!
</td>
@endguest
...
</td>
</tr>
</table>
我找到了解决方案::: 我们可以通过以下代码为访客隐藏并向我们的角色用户显示:
<table>
<tr>
<td>
...
</td>
@if(Auth()->check() and Auth::user()->isAdmin())
<td>
only Admins Can See This Column
</td>
@endif
<td>
...
</td>
...
</td>
</tr>
</table>
如果您想隐藏管理员用户并显示其他用户,您可以按照以下步骤操作。
在你的控制器中:-
public function index(Request $request)
{
$user = Auth::user();
if ($user->hasRole('admin')) {
$user = User::where('id', '!=', $user->id)->get();
} else {
$user = User::all();
}
return view('admin.users.index', compact('user'));
}
在您的 blade 文件中:-
@foreach($user as $users)
@if(Auth::user()->hasRole('admin'))
<tr>
<td>{{$users->id}}</td>
<td>{{$users->name}}</td>
<td>{{$users->email}}</td>
<td>{{$users->password}}</td>
<td class="text-center">
<a href="{{ route('users.edit', $users->id)}}" class="btn btn-primary btn-sm">Edit</a>
<form action="{{ route('users.destroy', $users->id)}}" method="post" style="display: inline-block">
@csrf
@method('DELETE')
<button class="btn btn-danger btn-sm" type="submit">Delete</button>
</form>
</td>
</tr>
@endif
@endforeach