ThreegunD
@ThreegunD

Как получить id текущего пользователя в сервис-провайдере?

Есть корзина,которая отображается на всех страницах и рядом с ней счётчик (показывает сколько товаров в корзине).
Собственно через View::share пытаюсь передать количество товаров во все вьюшки.
Сделал сервиc провайдер, в методе boot() прописал View::share( 'count', Cart::where('id', Auth::id)->sum('count') ) и подключил его в config/app в самом конце.
В итоге всё работает,кроме того,что Auth::id() возвращает null.( при замене "Auth::id()" на "1" всё прекрасно отрабатывает).

Или как это лучше организовать по-другому?
Laravel 5.4
  • Вопрос задан
  • 997 просмотров
Решения вопроса 1
wielski
@wielski
✔ Совет: Вам помогли? Отметьте ответы решением.
Первая же ссылка в гугле, ну что же вы так :)

Можно сделать через Middleware
<?php
namespace App\Http\Middleware;

use Closure;
use Illuminate\Contracts\Auth\Guard;

class SetViewVariables
{
    protected $auth;

    public function __construct(Guard $auth)
    {
        $this->auth = $auth;
    }

    public function handle($request, Closure $next)
    {
        $user = $this->auth->user();
        view()->share('user', $user);

        return $next($request);
    }

}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы