更新Laravel会话中的某些值

时间:2017-06-13 12:16:30

标签: laravel session

我有两个项目需要更新会话中的某些值。它适用于我的其他项目,因此我在新项目中使用了相同的代码(相同的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 

有人知道为什么吗?这就是我在其他项目中的表现,以及它的工作正常。

感谢您的帮助!

2 个答案:

答案 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();