我正在使用Laravel 5.2
。 (我是新的Laravel用户)
我需要使用会话。当然,请从不同的路由/页面中读取会话值。这是一个简单的概念,简单地说:
这是我使用的代码。
Route::get('write', function () {
session()->put('food', 'banana');
session()->save();
echo session()->get('food'); // <------ Shows: 'banana'
});
Route::get('read', function () {
echo session()->get('food'); // <------ Shows nothing*
});
谢谢大家。
答案 0 :(得分:1)
原因是session()->pull()
实际上从会话中提取了一个元素并将其从会话中删除。所以在/write
召唤你之后,你的会话中什么也没有。这就是/read
无法提取任何内容的原因。
您应该在方案中使用session()->get('food')
而不是pull
。
还要确保您的路由使用web
中间件。
Route::group(['middleware' => ['web']], function () {
Route::get('write', function () {
session()->put('food', 'banana');
echo session()->get('food'); // <------ Shows: 'banana'
});
Route::get('read', function () {
echo session()->get('food'); // <------ Shows 'banana' too
});
});
另请查看官方文档以获取进一步阅读:https://laravel.com/docs/5.2/session。
答案 1 :(得分:0)
在您输入或修改内容后使用session()->save()
。
我通常通过立面Session::save()
;
如果没有保存,会话对象就不会知道它。