更新以前的Session Array Laravel

时间:2014-07-15 18:24:58

标签: php arrays laravel laravel-4

我有一个关于如何更新我的Previous数组的问题? 我的代码目前发生的是它只是添加新的会话数组而不是更新声明的密钥,这是我的代码:

foreach ($items_updated as $key => $added)
{
    if ($id == $added['item_id'])
    {
        $newquantity = $added['item_quantity'] - 1;
        $update = array(
            'item_id' => $items['item_id'],
            'item_quantity' =>  $newquantity,
        );
    }
}

Session::push('items', $updated);

4 个答案:

答案 0 :(得分:7)

$items = Session::get('items', []);

foreach ($items as &$item) {
    if ($item['item_id'] == $id) {
        $item['item_quantity']--;
    }
}

Session::set('items', $items);

答案 1 :(得分:0)

你可以使用Session :: forget(' key');删除会话中的上一个数组。并使用Session :: push添加新项目。

答案 2 :(得分:0)

如果您使用的是laravel 5.0,我想这对您有用。但是请注意,我还没有在laravel 4.x上测试它,但是,我希望无论如何都会得到相同的结果:

{{1}}

答案 3 :(得分:0)

如果会话数组内有嵌套数组。您可以使用以下方式更新会话:ClassA

示例

假设您的会话中具有以下数组结构

$session()->put('user.age',$age);

如果您的会话数组深为n个数组,则使用点号(。)和键名到达第n个值或数组,例如$user = [ "name" => "Joe", "age" => 23 ] session()->put('user',$user); //updating the age in session session()->put('user.age',49);