我是 Laravel 的新手,使用 Laravel 5
我像这样在 Session 中存储一些值
这是在一个具有功能说 ABC 的 Controller 中
Session::put('check_in', $check_in);
Session::put('check_out', $check_out);
Session::put('no_of_rooms', $no_of_rooms);
Session::put('adult', $adult);
Session::put('child', $child);
return view('room');
我在房间 View 中获取所有这些 session 的值,但现在问题是当我从这个房间 View 转到其他链接或其他页面并使用 session 作为
echo Session::get('check_in')."<br>";
echo Session::get('check_out')."<br>";
echo Session::get('no_of_rooms')."<br><br>";
echo Session::get('adult')."<br>";
echo Session::get('child')."<br>";
我无法获得任何这些 Sessions 值(value)。
我正在使用 session ,所以它必须在所有页面上,直到 session 闪烁或浏览器关闭,但它没有检索任何 session 值..
我在 Stack Overflow 上看到过类似的主题,但我无法理解这些答案,请彻底解释我并解决这个问题,我在过去 4 到 5 天被困在这部分一无所知......
最佳答案
如果您使用 Laravel 5.*,那么您应该在所有路由中使用“网络”中间件来使用 session 。
这看起来像这样:在 app/http 目录中的 routes.php 中
Route::group(['middleware' => 'web'], function () {
Route::Auth();
Route::get('/', 'HomeController@index');
Route::get('/login', 'UserController@userLoginView');
Route::post('/login', 'UserController@userLogin');
}
您可以通过在“网络”中间件下声明 session 来在所有这些路由中使用 session 。
我建议您阅读更多有关 Laravel 5 中的“网络”中间件的信息。
看一下这个:
My Laravel 5.2.10 Sessions wont persist
注意:从 Laravel 5.2.27 开始,Web 中间件现在默认就位,尝试删除 Route::group 看看是否有帮助。 https://github.com/laravel/laravel/blob/v5.2.27/app/Providers/RouteServiceProvider.php#L56
关于php - Laravel 5 Session 不适用于第二页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36709056/