2016-02-28 25 views
5

Używam laravel 5.1 iz jakiegoś powodu dostaję ten błąd od czasu do czasu:laravel 5 UnexpectedValueException od odpowiedzi

UnexpectedValueException zgodnie Response.php 397: Zawartość odpowiedź musi być ciąg znaków lub obiekt implementujący __toString(), "boolean" podany.

To bardzo frustrujące, ponieważ jest to bardzo nieprzewidywalne i dzieje się tylko od czasu do czasu - więc bardzo trudno jest nawet debugować, ponieważ nie jest to zgodne. Mam prostą drogę po prostu zrzucić plik tłumaczenia, co następuje:

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

Gdybym zachować odświeżania strony, pokazuje wyjście dobrze przez większość czasu. Jednak raz na 20-30 połączeń pojawia się błąd! Czy ktoś może rzucić trochę światła tutaj?

tutaj jest ślad stosu:

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

Jaka jest zwykle wartość "trans (" restaurant ");" kiedy nie dostaniesz błędu? –

+0

Jest to tablica, ale Laravel zwykle konwertuje tablice do JSON, gdy wypluwa. – mavili

+0

to już odpowiedź, uprzejmie prosimy o sprawdzenie tego linku: http://stackoverflow.com/questions/31436047/laravel-5-unexpectedvalueexception-in-response-of-query-due-to-use-of-point-data –

Odpowiedz

0

Wystarczy dodać obsługi wyjątku. Abyś mógł obsłużyć dane, które pojawią się, gdy wystąpi błąd.

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