Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅允许管理员在Laravel中查看页面_Php_Laravel - Fatal编程技术网

Php 仅允许管理员在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!'

我试图让管理员用户能够在我的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!'

 @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')