【问题标题】:Argument 1 passed to Gloudemans\Shoppingcart\Cart::search() laravel参数 1 传递给 Gloudemans\Shoppingcart\Cart::search() laravel
【发布时间】:2017-12-23 11:37:01
【问题描述】:

前端:

<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();
   }
}

我收到此错误:

类型错误:参数 1 传递给 Gloudemans\Shoppingcart\Cart::search() 必须是 Closure 的一个实例, 给定数组,调用 C:\xampp\htdocs\ecomerce\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php 在第 221 行

【问题讨论】:

  • 向我们展示您的路线文件
  • Route::post('/update_cart/{id}/{method}', 'frontend@update_cart');

标签: php laravel cart


【解决方案1】:
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 来过滤您的购物车集合,如 here, search for filter() method 所述

【讨论】:

    猜你喜欢
    • 2018-10-15
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2021-06-05
    • 1970-01-01
    • 2015-10-09
    相关资源
    最近更新 更多