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