Laravel最新版本是否像Codeigniter最新版本一样在数据库中保存会话行?

时间:2014-11-04 03:12:25

标签: codeigniter laravel laravel-5

我目前正在开发Codeigniter最新版本,我尝试创建用户系统管理,我将会话设置为以下代码但Codeigniter不会删除旧会话行的现有行,而是尝试插入新的会话行。 它可能会使我的表用户卡住或因为它将存储更多(超过5000行)的用户会话行,或者如果所有会话行永远保留并且不删除或更新现有的会话数据行,则我的数据库连接可能会出错。

Laravel将如何永久保留其数据库中的会话行,或者在用户关闭浏览器或唱出后自动删除其用户行。

此外,我没有看到我的IP显示在我的数据库中。

$config['sess_cookie_name']     = 'ci_session';
$config['sess_expiration']      = 7200;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie']  = TRUE;
$config['sess_use_database']    = TRUE;
$config['sess_table_name']      = 'ci_sessions';
$config['sess_match_ip']        = TRUE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;

enter image description here

请帮助解决我的问题,如果可能的话,请给我一些想法

1 个答案:

答案 0 :(得分:4)

使用Laravel,您可以store session data一个文件,一个数据库,一个cookie或一个像memcached或redis这样的缓存。 Laravel根据v4.2中lottery和v5.0中app/config/session.php中的config/session.php设置清除过期的会话条目:

/*
|--------------------------------------------------------------------------
| Session Sweeping Lottery
|--------------------------------------------------------------------------
|
| Some session drivers must manually sweep their storage location to get
| rid of old sessions from storage. Here are the chances that it will
| happen on a given request. By default, the odds are 2 out of 100.
|
*/
'lottery' => [2, 100],

调整lottery值会更改任何给定请求上垃圾收集的几率。要强制清除,将赔率设置为1:1(即如果lottery中的两个值匹配)将强制Laravel在下一个请求中删除所有过期的会话数据。