争论1传递给Gloudemans \ Shoppingcart \ Cart :: search()laravel

时间:2017-07-18 14:22:45

标签: php laravel cart

前端:

<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

1 个答案:

答案 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所述