尝试将添加到购物车的项目添加到导航栏

时间:2018-12-11 23:28:10

标签: laravel

我根本不是Laravel的专家,所以我不知道如何解决此问题。我已经购买了要尝试编辑的laravel模板。

我的网站: 您可以在其中购买/出售特定商品的网站。

我的问题: 如果我在网站的购物车部分,我可以致电我的购物车数量,并为我的每个商品做一次foreach,这样它就会显示在我的购物车中。我试图在导航栏中创建一个购物车小图标,以显示购物车中的物品。问题:它不知道我的购物车数,因为这显然只在我在购物车中时才起作用,而在另一页上却不起作用。有人可以帮助我吗? 如果我不在购物车页面中,则会得到一个未定义的变量。

我试图将其添加到我的AppServiceProvider中,但是它告诉我“ cart”未知。 (我正在运行laravel 5.3,这就是为什么它是这样写的)

view()->share('cart', $cart);

我认为这是控制该部分的控制器(在ajax.php中)。

    // cart contents
public function cart_contents() {

    $cart = \Cart::content(true);

    return view('cart')->with( 'cart', $cart );
            view()->share('cart', $cart);
}

即使我似乎无法在除cart.page.blade之外的其他页面上“使用”它,我的购物车似乎已经被共享。

我在购物车上使用https://packagist.org/packages/kingpabel/shoppingcart

1 个答案:

答案 0 :(得分:0)

要在所有视图中使用变量,只需在AppServiceProvider类(apps/Providers/AppServiceProvider.php)中对其进行定义:

public function boot()
{
    View::share('cart', Cart::where(..)->get());
}

更多信息可以在Laravel manual中找到。