【问题标题】:laravel undefined variable gaurdlaravel 未定义的变量保护
【发布时间】:2018-01-03 06:32:00
【问题描述】:

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


    【解决方案1】:

    声明

    use guard

    不正确。

    替换为

    use Illuminate\Support\Facades\Auth

    【讨论】:

      【解决方案2】:

      看起来您根本不想使用自定义防护,所以只需使用 Auth::check()auth()-&gt;check() 代替:

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

      如果要使用,请指定:

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

      【讨论】:

      • @vinod 到底什么不起作用?你有错误吗?
      【解决方案3】:

      使用身份验证;

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

      public function handle($request, Closure $next, $guard = null)
      {
      
       if (\Auth::guard($guard)->check() && Auth::user()->user_type == '5'){
      
          return $next($request);
        }
      
        return redirect('/login');
      
      }
      

      【讨论】:

      • hi , $gaurd 设置为 null ,但它不是验证条件
      • 那么你之前的问题解决了吗?检查条件
      猜你喜欢
      • 2019-04-29
      • 1970-01-01
      • 2015-05-15
      • 2019-03-01
      • 2023-03-05
      • 2018-01-26
      • 2020-09-24
      • 2021-10-31
      • 2014-06-03
      相关资源
      最近更新 更多