2015-03-24 8 views
7

क्या php ऑब्जेक्ट्स को सहेजना संभव है, लार्वेल 5 सत्र में ऑब्जेक्ट संग्रह?क्या मैं लारवेल 5 सत्र में ऑब्जेक्ट्स, ऑब्जेक्ट कलेक्शन को सहेज सकता हूं?

मैं कोशिश कर रहा था, लेकिन मैं इस

Serialization of 'Closure' is not allowed vendor/illuminate/session/Store.php line 255 

Session::put('my_php_object', $obj); 
Session::save(); 


public function onRun() 
{ 

    $this->addCss('assets/css/custom.css'); 
    $this->socialite_providers = $this->page['socialite_providers'] =$this->providersList(); 

    //check for provider param in url 
    if($provider = $this->param('provider')){ 

     $this->setSessionProvider($provider); 
     $this->provider = $provider; 
     $this->callback_url = preg_replace('~.*\K:(.*)~s','',Request::root().$this->page->url); 
     $this->request = $this->createRequest($provider); 


     Session::save(); 
     return $this->request->redirect(); 

    } 

    //Authorize user if Request has code 
    if(Request::has('code')){ 

     if(!$this->getSession()) 
      return; 

     //reuse save session 

    } 

} 

public function createRequest($provider) 
{ 
    $instance = Socialite::driver($provider); 
    $init = $this->injectCredentials($instance, $provider); 

    $this->setSession($init); 
    return $init; 
} 

public function injectCredentials($instance, $provider){ 
    $credential = $this->providerData($provider)->toArray(); 
    $instance = new $instance 
    (
     Request::instance(), 
     $credential['client_id'], 
     $credential['client_secret'], 
     $this->callback_url 
    ); 

    return $instance; 
} 

public function setSession($init) 
{ 
    if(Session::has('socialite_object')) 
     Session::forget('socialite_object'); 


    Session::put('socialite_object', $init); 

} 
+0

क्या आपने serialize ($ obj) का प्रयास किया था? यह शायद काम नहीं करेगा लेकिन वैसे भी। –

+0

मैं कोशिश कर रहा हूं कि मैं सीरियलाइज क्लोजर त्रुटि – fefe

+3

प्राप्त करने से काम नहीं करूँगा, मैंने बिना किसी समस्या के सत्र में लैरवेल में वस्तुओं और संग्रहों को सफलतापूर्वक सहेजा है। मुझे संदेह होगा कि शायद आप कहीं '$ यह' का उपयोग कर रहे हैं और वास्तव में कुछ ऐसा प्राप्त कर रहे हैं जिसका आप इरादा नहीं कर रहे हैं। –

उत्तर

1

तुम हमेशा जिस ऑब्जेक्ट को संग्रहीत करने की कोशिश की की JSON प्रतिनिधित्व संग्रहीत कर सकती है पर त्रुटि मिलती है।

हालांकि, मैंने सुना है कि सत्र में बड़ी चीजें स्टोर न करने के लिए आम तौर पर यह एक अच्छा विचार है, क्या आप वैसे भी कुछ और स्टोर करके प्रबंधित कर सकते हैं? यदि आप डीबी से ऑब्जेक्ट संग्रहित कर रहे हैं, तो आप आईडी को स्टोर कर सकते हैं और ऑब्जेक्ट को क्वेरी के साथ पुनर्प्राप्त कर सकते हैं।

+0

क्या सत्र में परिणाम (कम से कम% बदलने के लिए) डेटाबेस को कई बार (प्रत्येक पृष्ठ रीफ्रेश के लिए) क्वेरी करना बेहतर होता है? – JCarlos

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