2014-12-31 44 views
0

試圖爲Laravel實現自定義錯誤處理程序,以便當它被推送時,404的等比正常的紅色和黑色屏幕更好。Laravel在FileViewFinder.php中查找視圖的錯誤處理程序

我發現這其中的意義的作品:

App::error(function(Exception $exception, $code) 
{ 
    $pathInfo = Request::getPathInfo(); 
    $message = $exception->getMessage() ?: 'Exception'; 
    Log::error("$code - $message @ $pathInfo\r\n$exception"); 

    if (Config::get('app.debug')) { 
    //return; 
    } 

    switch ($code) 
    { 
    case 403: 
     return Response::view('error/403', compact('message'), 403); 

    case 500: 
     return Response::view('error/500', compact('message'), 500); 

    default: 
     return Response::view('error/404', compact('message'), $code); 
    } 
}); 

但創下了404頁時,等它返回:

Error in exception handler: View [error/404] not found. in /Applications/MAMP/htdocs/buildsanctuary/vendor/laravel/framework/src/Illuminate/View/FileViewFinder.php:146 

如果我改變了看法,以我的自定義視圖一個/嘗試在Response :: view中創建路徑。例如

Response::view('app/views/error404') 

我收到相同的錯誤。

或者,如果我改變行更改爲:

View::make('a view here') 

然後我得到一個白色的屏幕。任何想法如何使這些錯誤鏈接到我的意見中的文件夾?

謝謝。

+0

如何在你的'views'目錄結構是什麼樣子? – lukasgeiter

+0

root> app> views> errors> 404.php – Lovelock

+0

'errorS''Response :: view('errors/404',...)'should work – lukasgeiter

回答

0

我從來沒有使用Response::view(),但如果它的工作原理與View::make()一樣,我認爲它的確如此,但它期望點符號並且它已知道視圖文件夾的位置。

Response::view('errors.404')