【问题标题】:update some values in a Laravel session更新 Laravel 会话中的一些值
【发布时间】:2017-11-15 05:16:01
【问题描述】:

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

有人知道为什么吗?这正是我在其他项目中所做的并且工作正常。

感谢您的帮助!

【问题讨论】:

  • 试试你的 foreach 就像 foreach ($all_products as $key =&gt; &amp;$sProduct)
  • 什么都没有改变:/

标签: laravel session


【解决方案1】:

不知道为什么要返回会话。

将日期存储到会话尝试

session(['key' => 'value']); 

// Via a request instance...
 $request->session()->put('key', 'value');

这将是一个非常好的起点https://laravel.com/docs/5.4/session

【讨论】:

  • 我当然尝试了 put 方法,但这对我不起作用
  • 问题不在于保存session中的数据,而是修改$allProducts数组。
  • 好吧,如何正确保存数据?我知道我只更改了变量,而不是会话本身。但是如何保存我的更改? Put 对我不起作用
【解决方案2】:

我发现在某些项目中,会话持久性没有按预期工作,并且每次我想更新会话变量时,调用 Session::save() 也很重要。

\Session::put("session_variable_name","abc");
\Session::save();

【讨论】:

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