2013-02-04 14 views
16

में सत्र समय समाप्ति की जांच करें, मैं सोच रहा था कि क्या कोई जानता है कि लैरावेल में सत्र समय समाप्ति की जांच कैसे करें।लार्वेल

आप देख सकते हैं सत्र एक विशिष्ट आइटम है कि क्या:

if (Session::has('name')) 
{ 
    $name = Session::get('name'); 
} 

लेकिन आप जांच नहीं कर सकता सत्र समाप्त हो गया है या नहीं। यह अच्छा होगा ताकि मैं उपयोगकर्ता को एक और विशिष्ट तरीके से रिपोर्ट कर सकूं। "आपका सत्र समाप्त हो गया है, कृपया फिर से शुरू करें।"

कोई विचार?

उत्तर

23

बस सत्र वर्ग के समान तर्क का उपयोग करें।

if ((time() - Session::activity()) > (Config::get('session.lifetime') * 60)) 
{ 
    // Session expired 
} 

इसे अपने 'पहले' फ़िल्टर में रखें - और यह प्रत्येक अनुरोध पर चलता रहेगा।

+2

वाह मैंने कभी नहीं देखा :: गतिविधि() पहले। वह दस्तावेज कहां है? – mattl

+12

यह दस्तावेज नहीं है - मैं बस सत्र कक्षा में गया और आपकी समस्या का उत्तर देने और काम करने के लिए सभी कार्यों को देखा :) – Laurence

+0

@mattl हालांकि टेलर (लैरवेल का निर्माता और लीड डेवलपर) इसे आसान बनाने के लिए देख रहा है करने के लिए, यह जवाब निश्चित रूप से जाने का सबसे बढ़िया तरीका है। आपको वास्तव में यह जवाब स्वीकार करना चाहिए। [:)]। – jonathanmarvens

2

ऐसा क्यों नहीं करते?

if (!Session::has('name')) 
{ 
    $sessionTimeout = 1; 
} 

यदि कोई सत्र समय समाप्त हो जाता है तो नाम अब सेट नहीं किया जाएगा। फिर आप $ sessionTimeout == 1 का जवाब देने के लिए कुछ कोड लिख सकते हैं;

+0

यह ऐसा नहीं करता है क्योंकि मैं यह जांचने की कोशिश कर रहा हूं कि कोई आइटम सेट था या नहीं, लेकिन समय से बाहर हो गया है, न कि यह वहां है या नहीं। – mattl

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^