2016-02-28 134 views
5

我使用Laravel 5.1出於某種原因,我得到這個錯誤不時:Laravel 5 UnexpectedValueException上響應

UnexpectedValueException在Response.php行397: 響應內容必須是字符串或實現__toString(),「布爾」給出的對象。

非常令人沮喪的是,這是非常不可預測的,它只是偶爾發生 - 所以很難甚至調試,因爲它不一致。我有一個簡單的路線,只是傾倒了一個翻譯文件,內容如下:

Route::get('test', function() { 
    return trans('restaurant'); 
}); 

如果我繼續刷新頁面,它顯示輸出精細的大部分時間。但是,每20-30次呼叫一次,我就會收到錯誤!請問有人能在這裏發光嗎?

這裏是堆棧跟蹤:

UnexpectedValueException in Response.php line 397: 
The Response content must be a string or object implementing __toString(), "boolean" given. 
in Response.php line 397 
at Response->setContent(false) in Response.php line 54 
at Response->setContent(array(...)) in Response.php line 200 
at Response->__construct(array(...)) in Router.php line 1229 
at Router->prepareResponse(object(Request), array(...)) in Router.php line 709 
at Router->Illuminate\Routing\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in LocaleSettings.php line 30 
at LocaleSettings->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(LocaleSettings), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in LaravelLocalizationRedirectFilter.php line 53 
at LaravelLocalizationRedirectFilter->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(LaravelLocalizationRedirectFilter), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in LocaleSessionRedirect.php line 25 
at LocaleSessionRedirect->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(LocaleSessionRedirect), '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 Router.php line 710 
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 675 
at Router->dispatchToRoute(object(Request)) in Router.php line 635 
at Router->dispatch(object(Request)) in Kernel.php line 236 
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Debugbar.php line 49 
at Debugbar->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(Debugbar), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in VerifyCsrfToken.php line 50 
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 ShareErrorsFromSession.php line 49 
at ShareErrorsFromSession->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in StartSession.php line 62 
at StartSession->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37 
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44 
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(CheckForMaintenanceMode), '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

'trans('restaurant')'的值通常是什麼;'當你沒有得到錯誤時? –

+0

這是一個數組,但Laravel吐出當陣列通常轉換爲JSON。 – mavili

+0

它已經回答,請請點擊此鏈接:http://stackoverflow.com/questions/31436047/laravel-5-unexpectedvalueexception-in-response-of-query-due-to-use-of-point-data –

回答

0

只需添加異常處理程序。這樣您就可以處理髮生錯誤時要顯示的數據。

Route::get('test', function() { 
     $response = trans('restaurant') 
     try{ 
      return $response; 
     } 
     catch(Exception $e) { 
      return []; 
     } 
    });