laravel是一款php框架了,在使用laravel時會碰到session使用問題,工作中使用的是session默認的文件緩存,在使用過發現 session()->put("key ","values")
沒有設定成功,最後翻源碼發現是使用檔案快取時候需要使用save()
方法才能持久化到資料庫中。
原始碼:vendor/laravel/framework/src/Illuminate/Session/Store.php
/** * Save the session data to storage. * * @return bool */ public function save() { $this->ageFlashData(); $this->handler->write($this->getId(), $this->prepareForStorage( serialize($this->attributes) )); $this->started = false; }
由於使用檔案快取因此write方法呼叫的原始碼: vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php
/** * {@inheritdoc} */ public function write($sessionId, $data) { $this->files->put($this->path.'/'.$sessionId, $data, true); return true; }
相關推薦:
#######PHP的session反序列化漏洞詳解#######以上是Laravel 5.4.36中session沒有保存成功怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!