Czy można zapisać php Objects, kolekcje obiektów w laravel 5 Session?Czy mogę zapisać obiekty, kolekcje obiektów w sesji Laravel 5?
starałem, ale pojawia się błąd na tej
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);
}
Czy próbowałeś serializować ($ obj)? Prawdopodobnie to nie zadziała, ale tak czy inaczej. –
Próbowałem nie będzie działać, niż uzyskać błąd szeregowej zamknięcia – fefe
Udało mi się zapisać obiekty i kolekcje w Laravel do sesji bez problemu. Byłbym podejrzliwy, że być może używasz "$ this" gdzieś i faktycznie dostajesz coś, czego nie zamierzasz. –