我在laravel 5中更新会话数组值时遇到了问题。这是我的函数,
public function postCartItemAdd()
{
$id = Request::input('id');
Session::push('items', $id);
dd(Session::all());
}
不是将新的id推入数组,而是替换现有的值而不是单个项目。我做错了吗?
答案 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);