我有两个项目需要更新会话中的某些值。它适用于我的其他项目,因此我在新项目中使用了相同的代码(相同的laravel版本)。现在它不再工作了,我不知道为什么。我没有收到任何错误消息,比如一切正常,但它没有。
以下是我的会话中的项目如何显示的虚拟数据:
articleNr: "16xxxxxx"
pictureUrl: "http://blablablabla...."
title: 'chocolate'
count: 7 // thats the amount - So I want 7x chocolate
代码:
$product_cartData = $request['product_data']; // In product data is the articlenumber and the amount I want to update ( like if I want to buy 5x this item )
$all_products = $request->session()->get('products');
foreach ($product_cartData as $data) {
foreach ($all_products as $key => $sProduct) {
if ($sProduct['articleNr'] == $data['id']) {
$sProduct['count'] = (int)$data['quantitie'];
}
// return $sProduct; <--- this returns the item with the updated quantitie
}
}
return session('products', $all_products); // <--- but here the quantitie isn't updated anymore
有人知道为什么吗?这就是我在其他项目中的表现,以及它的工作正常。
感谢您的帮助!
答案 0 :(得分:1)
不确定为什么要返回会话。
要将日期存储到会话,请尝试
session(['key' => 'value']);
// Via a request instance...
$request->session()->put('key', 'value');
这将是一个非常好的开始https://laravel.com/docs/5.4/session
的地方答案 1 :(得分:0)
我发现在某些项目中,会话持久性未按预期工作,并且每次我想更新会话变量时,也必须调用Session :: save()非常重要。
\Session::put("session_variable_name","abc");
\Session::save();