我无法从控制器静态调用Laravel Cart方法

时间:2015-02-28 21:15:24

标签: laravel cart

我正在尝试在Laravel中设置此购物车库,但我一直在Non-static method Darryldecode\Cart\Cart::add() should not be called statically, assuming $this from incompatible context https://github.com/darryldecode/laravelshoppingcart

这是我的控制器代码:

public function getCart(){
    $cartCollection = Cart::getContent(); 
    return response()->json($cartCollection->toArray());
}


public function updateCart( Request $request, $id ){
    $input = $request->all(); 
    Cart::update($id, array_except($input, array('_token')));
}   

public function addToCart( Request $request ){
    $input= $request->all(); 
    Cart::add(array_except($input, array('_token')));
}

public function removeFromCart( $id ){
    Cart::remove($id);
}

我的困惑是这个库的文档说你应该静态调用这些方法。我也尝试使用依赖性弹出方法,并抛出了不同的错误。任何有关这方面的帮助将不胜感激。

我对Laravel很新,请原谅我,如果这是一个愚蠢的疏忽。

我也完成了设置此库的所有步骤,包括将其添加到App.php提供程序数组和别名数组中。

1 个答案:

答案 0 :(得分:5)

不要在Darryldecode\Cart\Cart类上调用静态方法,而应该在包的外观上执行此操作。在您的情况下,这可能只意味着删除控制器中的use Darryldecode\Cart\Cart;语句。

由于控制器可能位于其自己的命名空间内,因此您现在必须通过\Cart引用它或添加use Cart以确保别名用于调用。< / p>

查看documentation以了解有关Laravel Facades及其工作原理的更多信息