2016-04-27 46 views
1

私はCarbon::setTestNow()システムログアウトを使用したメソッドコールの後に次のリフレッシュを行うときに、laravel 4.2プロジェクトのテスト目的にCarbon::setTestNow()を使用しています。 セッションCookieの有効期限がCarbon::setTestNow(に設定されているために発生します。どのように私はそれを上書きすることができます迷惑なので、再度ログインをすべて行う。ありがとう、いくつかの解決策を見つけるのを助けることを願っています。Carbon :: setTestNow()のLaravelセッションの有効期限

答えて

1

ただ、同じような状況に来て、ここでの結果です:

「公式の方法は、」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()); 
    } 
} 

に加え、コードブロックです後で誰かを助けることができると願っています。

+1

解決策はほぼ同じです。ありがとうございました。それが他の人に役立つことを願って –

関連する問題