Ich benutze Carbon::setTestNow()
für Testzweck auf Laravel 4.2 Projekt und die ganze Zeit, wenn ich nächste Aktualisierung nach dem Methodenaufruf, wo ich Carbon::setTestNow()
System Log mich aus. Dies passiert, weil das Sitzungscookie-Ablaufdatum auf Carbon::setTestNow(
) Datum festgelegt wird. Wie kann ich das überschreiben, weil es lästig ist, sich ständig neu einzuloggen? Danke, hoffe jemand kann mir helfen, eine Lösung zu finden.Laravel Sitzung Ablauf auf Carbon :: setTestNow()
1
A
Antwort
1
Nur um die gleiche Situation kommen und hier ist das Ergebnis:
Der „offizielle Weg“ ist die Illuminate\Session\Middleware::addCookieToResponse
oder ::getCookieLifetime
zu verlängern Aber ich finde es ziemlich kompliziert ist und aufgebläht. Kommen Sie nach einer einfachen Lösung:
Überprüfen Sie, ob die bereitgestellte Schein Zeit aus der Vergangenheit ist, überschreiben die session.lifetime, wenn nötig, hier ist der Codeblock I in app/start/global.php
hinzugefügt
// 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());
}
}
Da diese Antwort kommt spät Ich hoffe, es kann später jemandem helfen.
Machen Sie fast die gleiche Problemumgehung, danke Mann für die Antwort. Hoffe es wird für andere hilfreich sein –