【问题标题】:Laravel : Passing data from cart to checkout pageLaravel:将数据从购物车传递到结帐页面
【发布时间】:2018-04-24 14:15:50
【问题描述】:

我正在处理购物车,目前正在将购物车详细信息(例如产品价格和数量)传递到结帐页面,因此在结帐时我将能够将数据保存到另一个表中,例如 purchased_items 等。

我通过隐藏输入字段将数据从购物车页面传递到结帐页面,在那里我再次将值传递给结帐视图隐藏字段,以便我能够将该数据获取到结帐方法以将它们保存到数据库。

问题是我正在传递数组,因为产品及其数量在数组中。

<input type="hidden" name="product_id[]" value="{!!  !! $products !!}">
<input type="hidden" name="product_quantity[]" class="product_total_quantity" value="{!! $product_quantity !!}">

它给了我:

数组到字符串的转换

什么是解决这个问题的好方法?

【问题讨论】:

  • 在会话中传递你的购物车

标签: php html laravel


【解决方案1】:

为了使其正常工作,您需要为每个数组条目创建一个输入:

 @foreach ($products as $product)
      <input type="hidden" name="product_id[]" value="{!! $product !!}">
 @endforeach
 @foreach ($product_quantity as $q) 
     <input type="hidden" name="product_quantity[]" class="product_total_quantity" value="{!! $q!!}">
 @endforeach

当它被传递到服务器时,\Input::get('product_id')(或等效的 product_quantity)将再次包含您的数组。

【讨论】:

    【解决方案2】:

    试试这个

    <input type="hidden" name="product_id" value="{!! json_encode($products) !!}">
    <input type="hidden" name="product_quantity" class="product_total_quantity" value="{!! json_encode($product_quantity) !!}">
    

    然后就可以用json_decode(\Input::get('field_name'))得到数组了

    【讨论】:

      【解决方案3】:

      如果您将产品保存在会话或 cookie 中会不会更容易?

      Session::put('products', $product); // create a session
      Session::push('products', $newProduct); // add a product to the array
      $products = Session::get('products'); // read the products array
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-29
        • 2017-11-12
        • 2014-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多