0

我需要在我的 Laravel 项目中有几个会话,并且我需要每个会话都有一个特定的生命周期。

但是在 Laravel 文档中,我只是找到了如何为所有会话(在配置/会话中)而不是为每个会话设置一般生命周期。

4

1 回答 1

0

一种选择是使用SessionManager'extend函数来修改驱动程序。例如,如果您将会话存储在数据库中,您可以将以下内容放入boot服务提供者的方法中(您可能想要移动逻辑,但这应该可以帮助您入门)

\Session::extend('database_custom', function() {
    $table = config('session.table');

    $lifetime = request('remember') ? 60*24*2 : 20; //minutes

    $connection = config('session.connection');

    return new Illuminate\Session\DatabaseSessionHandler(
        app('db')->connection($connection), $table, $lifetime , app()
    );
});

在你的.env你会设置司机喜欢SESSION_DRIVER=database_custom。检查Illuminate\Session\SessionManager更多示例。

于 2018-02-28T16:06:15.540 回答