Где я должен создать свою корзину с PHPCart в Laravel 5?

1

Я делаю простую систему корзины покупок, используя Laravel 5 и Vue.js. Пользователь нажимает кнопку добавления в корзину, а Vue отправляет запрос AJAX контроллеру тележки. Эта часть отлично работает.

Документация для PHPCart показывает, как добавить элемент в корзину:

$cart = new Cart();

$cart->add([
    'id'       => 1001,
    'name'     => 'Skinny Jeans',
    'quantity' => 1,
    'price'    => 90
]);

Мой вопрос в том, где я могу установить переменную $cart в моем контроллере, чтобы к ней можно было получить доступ всеми различными способами добавления/удаления/обновления, которые в ней нуждаются?

  • 0
    Много возможностей. Вы можете сделать инъекцию зависимостей с вашей корзиной как Singleton, поэтому, когда вы запрашиваете Cart $ cart в вашем методе, у вас всегда будет один и тот же объект. Вы можете установить $ this-> cart = new Cart; в вашем конструкторе. Вы можете использовать сеанс также. Сильно зависит от ваших потребностей. IMO Я всегда использую инъекцию зависимостей и Singleton with Cart.
Теги:
vue.js
laravel-5

1 ответ

0

Если вы хотите получить доступ к нескольким методам на вашем контроллере, самым простым способом является использование инъекции зависимостей в конструкторе вашего контроллера.

protected $cart;

public function __construct(Cart $cart)
{
    $this->cart = $cart;
}

Затем в ваших различных методах контроллера вы можете просто получить к нему доступ, например $this->cart->add()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню