2014-12-31 2 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 ::. например

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', ...) 'должен работать – lukasgeiter

ответ

0

Я никогда не использовал Response::view(), но если он работает так, как View::make(), который я предполагаю, он ожидает точечную нотацию, и он уже знает, где находится папка представлений.

Response::view('errors.404')

Смежные вопросы