можно посмотреть реализацию через бд,
2 Пока делал, подумал, как при внедрении зависимостей быть с классом, которому нужен параметр в конструкторе? Как его передавать? Gpt предложил вот так, это ок?
public function register()
{
$this->app->bind(YourInjectedClass::class, function ($app) {
return new YourInjectedClass($parameterValue);
});
}
1. Где можно посмотреть реализацию через бд, всё тоже самое, только у тебя данные лежат в таблице carts. прикрепляешь к пользователю либо по user_id, либо по любому другому (id сессии например). когда гость регается, прикрепляешь к нему или мержишь корзину.
2. которому нужен параметр в конструкторе? что это за параметр?
Вот есть у меня таблица carts в бд. В колонках - primary key, id пользователя. Чтобы прикрепить к записи в таблице carts книги, я делаю таблицу book_cart: ---------------- id: primary cart_id (FK) book_id (FK) quantity При чекауте из book_cart удаляются все записи, связанные с cart_id корзины текущего юзера, эти же записи добавляются в таблицу sales (совершенные продажи). Правильно?
В колонках - primary key, id пользователя. id корзины. пользователь в user_id
а для других товаров ты делаешь новые таблицы?..
cart_items может быть. по сути pivot, просто связь товара с корзиной. с доп полями. например, кол-во
Ну вот взять, например ту же сессию, в какой то момент мне пришло во голову сделать переменную $oldCart с данными сессии в контроллере и прокидывать как-то в конструктор класса Cart (уже понял, что затея - говно), тем не менее, может же когда-то понадобиться прокинуть что-то в конструктор инжектируемого класса. И сижу, думаю, а как?
а настроить свой сервис можешь в бинде. да. но надо рассматривать что это за данные, которые ты хочешь передать. может это конфиг, может это какие-то данные из запросы, может из бд.
Обсуждают сегодня