【问题标题】:Cant change single value in session array in Laravel无法更改 Laravel 会话数组中的单个值
【发布时间】:2020-10-11 10:20:54
【问题描述】:

这是我的产品方法更新。并且不能改变产品的数量。数据保存在 foreach 中,但没有任何改变。我不明白这是什么问题。

if (!session()->has('products')) {
            session()->put('products', []);

        }

        $products = session()->get('products');

        foreach ($products as $item) {
            if (isset($item[$product->id])) {
                $item[$product->id]['qty'] = 10;
                dd($products); // dd($item) - changes
                $request->session()->put('products', $products);
                return redirect()->back();
            }

        }


        session()->push('products', [
            $product->id => [
                'product' => $product,
                'qty' => 1
            ]
        ]);


        return redirect()->back();

如您所见,有 dd($products) - 所以它不会改变。但是如果 dd($item) 所以它有 10 个。

【问题讨论】:

    标签: arrays laravel session


    【解决方案1】:

    我可以用下一个解决这个问题:

    foreach ($products as $key => $value) {
        if (isset($value[$product->id])) {
            $value[$product->id]['qty'] = 10;
            $products[$key] = $value;
            $request->session()->put('products', $products);
            return redirect()->back();
        }
    }
    

    只需添加一个 $key => $value 并将其保存在 $products[$key] = $value;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-06
      • 2019-02-22
      • 2017-06-10
      • 2020-03-25
      • 1970-01-01
      相关资源
      最近更新 更多