【问题标题】:With Laravel 4 is there a way to stop it from creating a session when a user access a page?使用 Laravel 4 有没有办法在用户访问页面时阻止它创建会话?
【发布时间】:2014-02-24 15:24:53
【问题描述】:

我注意到,每次我第一次加载页面(新用户)时,它都会创建一个新会话。我想禁用它。我只想在用户登录时创建会话。

那么有没有办法告诉 Laravel 4 每次有新人访问网站时不要创建新会话?

【问题讨论】:

  • 你确定这是会话吗?对我来说,它看起来更像饼干。还有你为什么要这么做?
  • 为了提高性能。

标签: php session laravel laravel-4


【解决方案1】:

您可以尝试将会话驱动程序设置为空白字符串以防止 Laravel 创建会话

Config::set('session.driver','');

【讨论】:

    【解决方案2】:

    使用 Laravel 4.1 Dimirc 答案似乎不起作用,原因有两个,首先是未知会话驱动程序引发错误,第二个会话在 Laravel 中很早就开始了,因此需要尽早更改会话驱动程序。

    我目前正在解决同样的问题,并且发现我可以在会话开始之前在 bootstrap/start.php 第 61 行更改会话驱动程序。

    此时框架已经加载了很多 Laravel 功能,但还没有加载会话。

    您可以访问请求类并检查用户是否在您想要阻止会话的页面上,如下所示:

    require $framework.'/Illuminate/Foundation/start.php';
    
    if ($app['request']->getMethod() == 'GET' && $app['request']->path() == '/')
    {
        $app['config']->set('session.driver', 'array');
    }
    

    (第一行是 bootstrap/start.php 的第 60 行,具体取决于任何环境检测)。

    请注意,我将会话驱动程序设置为数组,因为此驱动程序不会在请求之间保留数据。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-25
      • 2015-09-14
      相关资源
      最近更新 更多