【问题标题】:Save new value to Laravel session array将新值保存到 Laravel 会话数组
【发布时间】:2015-10-31 11:33:29
【问题描述】:

我有以下代码循环遍历会话数组中的项目并更改值。如何将其保存回会话?

foreach(Session::get('cart.program') as &$item) {
    if ($item['id'] == '1xxx') { 
        item['id'] = '2xxx';
        break;
    }
}

【问题讨论】:

  • @peterm 我发布了一个新问题。希望这是有道理的。

标签: php arrays session laravel


【解决方案1】:

一种方法

$cart = Session::get('cart.program');

foreach($cart as &$item) {
    if ($item['id'] == '1xx') { 
        $item['id'] = '2xx';
        break;
    }
}

Session::put('cart.program', $cart);

【讨论】:

  • 谢谢,我认为有一种方法可以只修改和存储数组中的一项,但这是可行的。
【解决方案2】:

在 Laravel 中使用 Session::put()save to the session

foreach(Session::get('cart.program') as $item){
    if ($item['id'] == '1xxx') { 
        Session::put('cart.program.id', '2xxx');
        break;
    }
}

【讨论】:

  • 这不会更新$item['id']。它将"id" => "2xxx" 作为新项目添加到cart['program']
  • 我已经看过有关处理会话数据的 Laravel 文档,但我不确定在循环中更新 item 值的语法。
猜你喜欢
  • 2018-04-13
  • 2020-04-23
  • 2012-07-09
  • 2011-06-21
  • 2020-06-06
  • 1970-01-01
  • 1970-01-01
  • 2017-06-10
  • 2012-11-25
相关资源
最近更新 更多