2015-07-08 2 views
1

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

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

$cart = new Cart(); 

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

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

+0

Много возможностей. Вы можете сделать инъекцию зависимостей с вашей тележкой как Singleton, поэтому, когда вы запрашиваете корзину Cart cart в своем методе, у вас всегда будет один и тот же объект. Вы можете установить $ this-> cart = new Cart; в вашем конструкторе. Вы также можете использовать Session. Очень зависит от ваших потребностей. IMO Я всегда использую инъекцию зависимостей и Singleton с Cart. – ChainList

ответ

0

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

protected $cart; 

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

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