Как правильно реализовывать корзину Laravel?

197
11 мая 2022, 17:30

Всем привет! Я новичок, поэтому хотелось бы услышать несколько советов.

Делаю тестовый инет магазин, очередь дошла до корзины. В учебных роликах показывали как ее реализовывать, путем добавления выбранных товаров в БД, но это вероятно не совсем правильно, в комментах пишут что лучше делать через сессии, кто то писал что можно через AJAX запросы. Только я не совсем понял, они вместе реализуются либо один из двух вариантов?

Так в итоге какой вариант самый оптимальный? Можете посоветовать, что почитать или где подсмотреть реализацию на Laravel?

Спасибо!

Answer 1

Для реализации корзины можно использовать разные механизмы, у каждого свои минусы:

  1. Данные о товарах из корзины хранятся в БД, должны быть подвязаны к конкретному пользователю. Этот способ хранения не подходит, если на вашем сайте нет механизма Аутентификации.

  2. Данные о товарах храняться в Сессиях. Минус данного способа - время нахождение товаров в корзине, которе определяется временем жизни php сессии.

  3. Данные о товарах из корзины хранятся в локальном кэше браузера. Из минусов - пользователь может случайно очистить кжш и потерять данные с корзины.

По моему мнению, лучше всего использовать комбинацию из вышеуказанных решений, например, если пользователь не авторизован на сайте - хранить данные в кэше или сессии, а когда пользователь авторизуется - переносить данные из сессии в БД и начинать хранить новые добавленные продукты там.

READ ALSO
Как вывести данные из MySQL при помощи PHP?

Как вывести данные из MySQL при помощи PHP?

Есть таблица news, в ней 5 полей id, text, title, author, dateНеобходимо вывести на странице эти данные

230
Несколько id категорий

Несколько id категорий

Нужна помощь! в строке 12: private $vacancy_category_id = 105; параметр для id 105 категории подключает функции которые прописаны ниже, сейчас параметры подключаются...

188
Пролема с переменной вне цикла foreach

Пролема с переменной вне цикла foreach

всем доброго времени сутокСтолкнулся с проблемой которую не могу решить без помощи(поверьте я пытался) Сама проблема:

270