Laravel 5会话阵列更新

时间:2015-08-18 07:25:28

标签: laravel laravel-5

我在laravel 5中更新会话数组值时遇到了问题。这是我的函数,

public function postCartItemAdd()
{
    $id = Request::input('id');
    Session::push('items', $id);

    dd(Session::all());
}

不是将新的id推入数组,而是替换现有的值而不是单个项目。我做错了吗?

3 个答案:

答案 0 :(得分:1)

问题是会话被保存为闪存数据。因此,您需要在推送数据时保存会话。

$request->session()->push('user.items', 'item1');
$request->session()->push('user.items', 'item2');
$request->session()->save();

答案 1 :(得分:0)

嗯,我认为你用错了,

请参阅DOC

它说

Session::push('user.teams', 'developers');

user是数组,我们会使用developers键将值teams放到该数组

所以你需要在你的情况下使用它,

Session::push('items.id', $id);

如果您需要将items维护为具有0,1,2,3...等默认密钥的数组来放置ids,那么items应该是数组

所以应该有类似的东西,

Session::put('items', []);

然后您可以使用Session::push('items', $id);

如果你需要将id推入到你尝试的同一个数组中。

答案 2 :(得分:0)

或试试这个

$items = Session::pull('items');
$items[] = $id;
Session::push('items', $items);