无法更改 Laravel 会话数组中的单个值
Posted
技术标签:
【中文标题】无法更改 Laravel 会话数组中的单个值【英文标题】:Cant change single value in session array in 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 个。
【问题讨论】:
【参考方案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;
【讨论】:
以上是关于无法更改 Laravel 会话数组中的单个值的主要内容,如果未能解决你的问题,请参考以下文章