我正在尝试在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提供程序数组和别名数组中。
答案 0 :(得分:5)
不要在Darryldecode\Cart\Cart
类上调用静态方法,而应该在包的外观上执行此操作。在您的情况下,这可能只意味着删除控制器中的use Darryldecode\Cart\Cart;
语句。
由于控制器可能位于其自己的命名空间内,因此您现在必须通过\Cart
引用它或添加use Cart
以确保别名用于调用。< / p>
查看documentation以了解有关Laravel Facades及其工作原理的更多信息