laravel 未定义的变量守卫

laravel undefined variable gaurd

这是我为路由创建中间件的代码,我在这里使用 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');  
        }
       }

声明

use guard

不正确。

替换为

use Illuminate\Support\Facades\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');

}

看来您根本不想使用自定义守卫,所以只需使用 Auth::check()auth()->check() 即可:

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

如果要使用,请指定:

Auth::guard('custom-guard-name')->check()