2015-10-18 48 views
0

在我登錄我已經創建的會話,Session::put('lid','somevalue')Session::put('ltype','somevalue')和我的默認刀片我不喜歡的東西問題4.2會話

@if(Session->has('ltype') 
<div>Hello</div> 
@else 
//redirect to login page 

在我的應用程序/配置session.php文件我已經改變了超時到5意思是5分鐘。我計時,但它已經8分鐘,當我刷新我的網頁,它仍然顯示Hello它應該被重定向到登錄已經因爲會話已經過期。難道我做錯了什麼?

回答

1

您可以使用下面的代碼:

@if(Session::has('ltype') 
     <div>Hello</div> 
    @else 

必須使用::,而不是->因爲會議是一個靜態方法。

+0

嗨!對不起這是我的錯。我做到了,但不知何故,我仍然在if語句內 – BourneShady

+0

嗯,它確實去了@else語句,但延遲了2-3分鐘 – BourneShady

+1

@BourneShady出於性能考慮,會話不會在每個請求上進行評估以確定它們是否過期。他們使用抽獎來確定是否應該進行檢查,因此如果刷新幾次,垃圾收集器將最終被觸發並清理過期的會話。這就是你遇到延遲的原因。你可以閱讀更多關於[這個答案](http://stackoverflow.com/questions/26744921/laravel-4-2-session-table-not-getting-cleaned-up/26745685#26745685)。 – Bogdan