2016-03-17 85 views
3

在我的本地系統上一切正常,但在我們的測試系統上部署Laravel 5.2後,它看起來像會話中間件已損壞。有人可以幫忙嗎?Laravel Session Middleware broken

Argument 1 passed to Illuminate\Session\Middleware\  
StartSession::addCookieToResponse() must be an instance of 
Symfony\Component\HttpFoundation\Response, boolean given, called in 
... /httpdocs/service/vendor/laravel/framework/src/Illuminate/Session 
/Middleware/StartSession.php on line 72 and defined 

全球中間件:

protected $middleware = [ 
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, 
    \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 
    \Illuminate\Session\Middleware\StartSession::class, 
    \Illuminate\View\Middleware\ShareErrorsFromSession::class, 
    \App\Http\Middleware\CORSMiddleware::class, 
    \LucaDegasperi\OAuth2Server\Middleware\OAuthExceptionHandlerMiddleware::class 
]; 

回答

1

那麼在照亮\會話\中間件\ StartSession類addCookieToResponse方法想要一個響應對象作爲第一個參數。確保您返回所有 路線中的一個。

這裏有一個可能的快速修復,將其改爲適合您的情況。

前:

Route::get('hi', function() { 
    return 'hi'; 
}); 

後:

Route::get('hi', function() { 
    return response('hi'); 
}); 
3

這個問題是一歲,但我發現它有同樣的問題後。

在我使用的代碼中的某處: return

原來(你可以在手柄方法的末尾看到),其執行的處理方法後,你必須撥打return $next($request);

+0

有同樣的問題被誤註釋掉'''返回$下一個($請求);'''在函數結尾處 – Ulterior