前端:
<form action="update_cart/{{$value->id}}/update" method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}" />
<input type="number" name="update_qty" value="{{$value->qty}}"/>
<input type="submit" name="submit" value="Update"/>
</form>
控制器:
public function update_cart( $id,$method ){
if ($method=='update') {
$rowId = Cart::search(array('id' => $id));
$item = Cart::get($rowId[0]);
$update_qty = Requests::input('update_qty');
Cart::update($rowId[0], $update_qty);
return back();
}
}
类型错误:传递给Gloudemans \ Shoppingcart \ Cart :: search()的参数1必须是Closure的实例,给定数组,在C:\ xampp \ htdocs \ ecomerce \ vendor \ laravel \ framework \ src \ Illuminate中调用在221行支持\ Facades \ Facade.php
答案 0 :(得分:0)
Argument passed to ..::search() must be an instance of Closure, array given
正如错误消息所示,您不应该将数组发送到search
方法,而是关闭:
$item = Cart::search(function ($cart, $key) use($id) {
return $cart->id == $id;
})->first();
它应该直接返回项目,而不仅仅是id。
如果您想要参考,search
方法仅使用您的Closure来过滤您的Cart集合,如here, search for filter() method所述