【问题标题】:How to insert multiple value in same cookie each time in Laravel 8如何在 Laravel 8 中每次在同一个 cookie 中插入多个值
【发布时间】:2021-11-14 08:00:06
【问题描述】:

我的控制器

 public function addcart(Request $request)
{

    $data1 =  array($request);
    if (is_array($data1) || is_object($data1)) {
        foreach ($data1 as $data1) {
            // if (!empty($id)) {
            $data[] = [
                'id' => $data1->id,
                'quantity' => $data1->quantity,
            ];
            foreach ($data as $data) {
                $data2 = Cookie::get('cart');
                if (Cookie::get('cart') == null) {
                    setcookie('cart', json_encode($data));
                }else{
                    Cookie::queue('cart', json_encode($data));
                }
            }
        }
    }
    return redirect()->back();
}

我的刀

 @foreach ($data as $data)
                    <form action="{{ url('/addcart') }}" method="post">
                        @csrf
                        <tr>

                            <td class="w-25">
                                <img src="/foodimage/{{ $data->image }}" class="img-fluid img-thumbnail"
                                    alt="Sheep">
                            </td>
                            <td>{{ $data->food_name }}</td>
                            <td>{{ $data->price }}</td>
                            <td value="{{ $data->category_id }}">{{ $data->category_id }}</td>

                            <td><button type="button" class="btn btn-info">{{ $data->available }}</button></td>
                            <td>{{ $data->description }}</td>
                            <td><input type="number" class="form-control" name="quantity" min="1">
                                <input type="number" name="id" value="{{ $data->id }}" hidden="">
                                <button type="submit" class="btn btn-primary">add cart</button>
                            </td>
                            {{-- <td><a class="btn btn-danger" href="{{ url('/removefood',$users->id) }}">Delete</a></td> --}}

                        </tr>
                    </form>
                @endforeach

每当我向购物车添加新值时,我的 cookie 都会替换之前的值。每次提交表单时,我都想保留以前的数据并在 cookie 中插入新数据。 谁能帮我? TIA

【问题讨论】:

    标签: php cookies controller laravel-8 laravel-blade


    【解决方案1】:

    我自己做出了答案。如果需要,这里是代码。

    public function addcart(Request $request)
    {
        $quantity = $request->quantity;
        $id = $request->id;
    
        $cart = isset($_COOKIE["cart"]) ? $_COOKIE["cart"] : "[]";
        $cart = json_decode($cart);
        $cart1 = json_decode(json_encode($cart), true);
        $cartcheck = $cart1['id'];
    
        $newarray = new stdClass();
        $newarray->id = $id;
        $newarray->quantity = $quantity;
        $newarray1 = json_decode(json_encode($newarray), true);
        $newarraycheck = $newarray->id;
    
        if (empty($cart)) {
            setcookie("cart", json_encode($newarray));
        }
        $flag = 0;
    
        foreach ($cartcheck as $cartcheck) {
    
            if ($cartcheck == $newarraycheck) {
                $flag = 1;
            }
        }
        if($flag==0){
            $result = array_merge_recursive($cart1, $newarray1);
        setcookie("cart", json_encode($result));
        }else{
            echo "Already in cart";
        }
    
    
        return redirect()->back();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-17
      • 2014-08-30
      • 1970-01-01
      • 2015-12-21
      • 2017-10-16
      • 2021-07-28
      • 1970-01-01
      • 2014-01-15
      相关资源
      最近更新 更多