Laravel 5.3:如何在服务提供商中使用身份验证?

Vol*_*il3 4 view laravel laravel-5.3

我通过从表中获取值来传递共享视图中的值。我需要知道用户 ID,但Auth::check()返回 false。我该怎么做?下面是代码:

public function boot()
    {
        $basket_count = 0;
        if (Auth::check()) { //always false
            $loggedin_user_id = Auth::user()->id;
            $basket_count = Cart::getBasketCount();
        }
        view()->share('basket_count', $basket_count);
    }
Run Code Online (Sandbox Code Playgroud)

Vol*_*il3 5

好吧,事实证明那里ServiceProviders不适合做这样的事情。最好的事情是一个Middleware. 因此,如果您想调用 Auth,请创建中间件并将值传递给视图。

public function handle($request, Closure $next)
    {            
        $basket_count = 0;
        if ($this->auth) { //always false
            $loggedin_user_id = $this->auth->user()->id;
            $basket_count = Cart::getBasketCount($loggedin_user_id);
        }
        view()->share('basket_count', $basket_count);

        return $next($request);
    }
Run Code Online (Sandbox Code Playgroud)