2015-11-04 93 views
2

我正在開發一個小型網站,並且會話有問題。當我嘗試登錄或使AJAX調用,我得到了以下的RuntimeException:Laravel會話存儲未根據請求設置

RuntimeException in Request.php line 758: Session store not set on request. 

in Request.php line 758 
at Request->session() in VerifyCsrfToken.php line 87 
at VerifyCsrfToken->tokensMatch(object(Request)) in VerifyCsrfToken.php line 49 
at VerifyCsrfToken->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Language.php line 38 
at Language->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(Language), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in EncryptCookies.php line 59 
at EncryptCookies->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103 
at Pipeline->then(object(Closure)) in Kernel.php line 122 
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 87 
at Kernel->handle(object(Request)) in index.php line 54 

任何想法,我做了什麼錯。在此先感謝

回答

0

刪除everyting這個文件夾storage/framework/sessions 內,並確保該文件夾具有寫權限

+0

它並沒有幫助,我仍然得到的RuntimeException,但由於無論如何, – icemanblas

0

請問文件「/config/session.php」在你的項目存在嗎?如果沒有,請創建它並確保所有選項都設置正確。

+2

是的,它確實存在,並且據我所知,所有的選項都設置正確,我會再仔細檢查一下,看看有沒有什麼我可以做的,但是我必須創建一個新項目並手動導入所有文件,現在另一個項目按預期工作 – icemanblas

1

看@Cas布勒姆在這裏他的回答幫我出令人驚訝:

Laravel - Session store not set on request

這就是爲什麼它不是爲我工作。因爲你正在使用一個期望匹配CSRF令牌的會話(是我最好的猜測,我是Laravel自己的新手)。

此外,如果你去app-> http-> middleware-> VerifyCsrfToken這是你可以添加路由到數組將不檢查CSRF驗證。這加上Cas Bloem的修復(在routes.php的不同部分放置路由)解決了我的問題。我現在只是在localhost上開發/學習,但需要稍後再實施。

希望這有助於/清除的東西!

+0

此解決方案僅適用於laravel 5.2哪些不是OP正在運行 – mhughes

1

假設您使用Laravel 5.2:如果您需要會話狀態,CSRF保護等,則需要使用Web中間件。 (如在5.1全球)

路線::組([ '中間件'=> [ '網絡'],函數(){

+1

他使用的OP狀態5.1 –

+0

是的,我在該項目上使用了5.1,正如我之前所說的,解決方案是創建Laravel 5.1的新副本,並導入我生成的所有文件,該項目是一個一團糟,幾個開發人員對它進行了處理,並且我設法處理了它。感謝您的幫助,但這是一種親身體驗,所以不能選擇正確的答案,儘管您的答案可能適用於與此例外相關的其他問題。 – icemanblas