Session() - >放入Laravel每次执行时放置一个数组

时间:2017-05-25 08:40:47

标签: arrays laravel session

我正在尝试在Laravel session中推送一个数组数组,即使它按预期插入它,它也会插入带有键0的数组:

session()->flush();
session()->put('wizard.selectedProjects',$selectedProjects);
session()->put('wizard.projectCount',count($selectedProjects));
session()->put('wizard.currentProject',0);

例如:

$selectedProjects = [
    'project1' => [ 
        'name' => 'name1', 
        'url'  => 'url1'
    ], 
    'project2' => [
        'name' => 'name2', 
        'url'  => 'url2'
    ]
]

session看起来像这样:

session()->all()其中wizard键的值为:

0 => ['project1','project2']

以及

'selectedProjects' => ['project1','project2']

为什么Laravel会在我的数组中插入0键并按预期在指定键处插入数组?

编辑:似乎每次执行session()->put()(在上面的代码中),都会生成一个内容为$selectedProjects的新密钥。最后,我将0selectedProjects1projectCount2currentProject作为我session中的键,包含$selectedProjects的所有额外密钥。

1 个答案:

答案 0 :(得分:0)

如果要添加数组值,则需要使用session()->push()。使用put()表示单个值。

session()->flush();
session()->push('wizard.selectedProjects', $selectedProjects);
session()->put('wizard.projectCount', count($selectedProjects));
session()->put('wizard.currentProject', 0);