【发布时间】:2015-02-27 13:01:19
【问题描述】:
尝试为 Laravel 实现一个自定义错误处理程序,以便当它被推送时,404 等比正常的红屏和黑屏更好。
我发现这是有意义的:
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')
然后我得到一个白屏。任何想法如何使这些错误链接到我视图中的文件夹?
谢谢。
【问题讨论】:
-
views目录中的结构是什么样的? -
root>app>views>errors>404.php
-
errorSResponse::view('errors/404', ...)应该可以工作
标签: php laravel error-handling http-status-code-404