laravel undefined变量守卫

问题描述 投票:2回答:3

这是我创建路由中间件的代码,这里我使用的是Auth :: guard,所以它显示未定义的变量保护,提前谢谢

 <?php
      namespace App\Http\Middleware;

      use Closure;


      class accesscontrol
      {
        /**
         * Handle an incoming request.
         *
         * @param  \Illuminate\Http\Request  $request
         * @param  \Closure  $next
         * @return mixed
         */
        public function handle($request, Closure $next)
        {
         if (\Auth::guard($guard)->check() && Auth::user()->user_type == '5')  
         {      
                return $next($request);
         }  
          return redirect('/login');  
        }
       }
php laravel laravel-5.3 middleware
3个回答
1
投票

使用Auth;

传递变量,定义下面的句柄方法:

public function handle($request, Closure $next, $guard = null)
{

 if (\Auth::guard($guard)->check() && Auth::user()->user_type == '5'){

    return $next($request);
  }

  return redirect('/login');

}

2
投票

该声明

use guard

是不正确的。

替换为

use Illuminate\Support\Facades\Auth


2
投票

看起来你根本不想使用自定义防护,所以只需使用Auth::check()auth()->check()

if (auth()->check() && auth()->user()->user_type == '5') {
    return $next($request);
}

如果要使用它,请指定它:

Auth::guard('custom-guard-name')->check()
© www.soinside.com 2019 - 2024. All rights reserved.