php - Laravel 5 Session 不适用于第二页

标签 php laravel session laravel-5

我是 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/

相关文章:

validation - 使用 Laravel 验证规则检查用户的年龄

php - 如何从 laravel session 中的单个命令中删除多个键

session - PHP 中的 session.auto_start 有缺点吗?

java - session 是否可以在托管于不同应用程序服务器的两个不同应用程序之间共享

php - 考虑到我的图像链接存储在MySQL数据库中,如何通过php显示存储在文件夹中的图像

php创建文件的权限

php - MySQL插入特殊字符

mysql - 在 laravel 中如何在 group by 之前进行排序?

api - Rails 5 如何为 session 创建操作编写 api Controller 功能测试

php - 在创建类似功能以导入和映射 CSV 方面寻求帮助,类似于 Mailchimp