就得出了同样的情况,这里的结果:
“官方途径”是扩展Illuminate\Session\Middleware::addCookieToResponse
或::getCookieLifetime
不过,我觉得这是相当复杂和臃肿。 来到一个简单的解决方案:
检查所提供的模拟时间从过去的,覆盖在需要时session.lifetime,这里是我为app/start/global.php
// Set mock time if requested
if (! empty($_GET['mocktime'])) {
try {
$real_time = \Carbon\Carbon::now();
$mock_time = \Carbon\Carbon::parse($_GET['mocktime']);
\Carbon\Carbon::setTestNow($mock_time);
$diff_min = $real_time->diffInMinutes($mock_time);
if ($diff_min > 0) {
// requested mock time is from the pass
$org_lifetime = Config::get('session.lifetime');
Config::set('session.lifetime', $diff_min + $org_lifetime);
}
} catch (Exception $ex){
Log::warning('Mocktime requested but unable to set: '.$ex->getMessage());
}
}
添加为这个答案的代码块来晚了希望以后能帮助别人。
来源
2016-09-07 10:33:13
DQM
使几乎相同的解决方法,谢谢你的答案。希望它会对其他人有所帮助 –