Php 仅允许管理员在Laravel中查看页面
我试图让管理员用户能够在我的laravel项目中查看导航栏的某些内容。我有一个Php 仅允许管理员在Laravel中查看页面,php,laravel,Php,Laravel,我试图让管理员用户能够在我的laravel项目中查看导航栏的某些内容。我有一个users表,其中有一个由“admin”和“user”值组成的角色列,我在中间件中使用这些值,以允许管理员用户访问管理员面板进行CRUD操作 我试过: @if(auth()->check()) @if(Auth::user()->get(array('users.role')) == 'admin') 'THIS IS WHAT I WANT ONLY ADMIN USERS TO SEE!'
users
表,其中有一个由“admin”和“user”值组成的角色列,我在中间件中使用这些值,以允许管理员用户访问管理员面板进行CRUD操作
我试过:
@if(auth()->check())
@if(Auth::user()->get(array('users.role')) == 'admin')
'THIS IS WHAT I WANT ONLY ADMIN USERS TO SEE!'
@endif
@endif
然而,当登录到一个“管理员”用户时,我仍然看不到只有管理员的内容。我对这个框架相当陌生,但如果有人有任何建议,我将不胜感激
谢谢
萨姆试试这个:
@if (Auth::user() && Auth::user()->role == 'admin')
'THIS IS WHAT I WANT ONLY ADMIN USERS TO SEE!'
@endif
Auth::user()
与Auth::check()
相同,它将检查用户是否经过身份验证。只有用户经过身份验证,Laravel才会运行Auth::user()->role==“admin”
,检查用户是否是管理员。您可以创建一个单独的管理员中间件组:
public function handle($request, Closure $next, $guard = null)
{
if(Auth::check())
{
if($request->user()->role=='admin')
{
return $next($request);
}
return redirect('/');
}
return redirect('/login');
}
因此,您可以保护仅允许管理员的路由:
Route::group(['middleware' => ['App\Http\Middleware\Adminmiddleware']], function () {
//admin routes
});
对于您的代码,您可以通过以下方式进行检查:
if(Auth::user()->role == 'admin')