【问题标题】:Where should I instantiate my cart with PHPCart in Laravel 5?在 Laravel 5 中,我应该在哪里使用 PHPCart 实例化我的购物车?
【发布时间】:2015-09-26 11:56:16
【问题描述】:

我正在使用 Laravel 5 和 Vue.js 制作一个简单的购物车系统。用户单击添加到购物车按钮,Vue 向购物车控制器发送 AJAX 请求。这部分工作正常。

PHPCart 的文档展示了如何将商品添加到购物车:

$cart = new Cart();

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

我的问题是,我应该在哪里设置我的控制器中的 $cart 变量,以便所有需要它的各种添加/删除/更新方法都可以访问它?

【问题讨论】:

  • 许多可能性。您可以将购物车作为 Singleton 进行依赖注入,因此当您在方法中询问 Cart $cart 时,您将始终拥有相同的对象。您可以设置 $this->cart = new Cart;在你的构造函数中。您也可以使用会话。很大程度上取决于您的需求。 IMO 我总是使用依赖注入和单例与购物车。

标签: php laravel-5 vue.js


【解决方案1】:

如果您想从控制器上的多个方法进行访问,最简单的方法是在控制器的构造函数中使用依赖注入。

protected $cart;

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

然后在您的各种控制器方法中,您可以像访问它一样简单地访问它 $this->cart->add()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-02
    • 1970-01-01
    • 2016-02-19
    • 1970-01-01
    • 2022-10-05
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    相关资源
    最近更新 更多