Есть сервис для работы с корзиной
CartService
, данный сервис использует репозиторий
CartGuestRepository
и
CartCustomerRepository
, которые реализуют интерфейс
CartRepositoryInterface
.
Репозиторий для гостя получает данные по корзине из сессии, репозиторий для покупателя - из базы данных.
Хочу в зависимости от того, авторизован пользователь или нет - биндить нужный репозиторий, но такая реализация в сервис провайдере не работает:
if (Auth::check()) {
app()->singleton(CartRepositoryInterface::class, CartCustomerRepository::class);
} else {
app()->singleton(CartRepositoryInterface::class, CartGuestRepository::class);
}
так как на этом этапе
Auth::check()
всегда возвращает
false
. Каким способом можно подобные задачи решать?