I советую поместить это в ваш app/start/global.php
, так как именно там Laravel обрабатывает его по умолчанию (хотя filters.php
также будет работать). Я обычно использую что-то вроде этого:
/*
|--------------------------------------------------------------------------
| Application Error Handler
|--------------------------------------------------------------------------
|
| Here you may handle any errors that occur in your application, including
| logging them or displaying custom views for specific errors. You may
| even register several error handlers to handle different types of
| exceptions. If nothing is returned, the default error view is
| shown, which includes a detailed stack trace during debug.
|
*/
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('errors/403', array(), 403);
case 500:
return Response::view('errors/500', array(), 500);
default:
return Response::view('errors/404', array(), $code);
}
});
Тогда просто сделать errors
папку внутри /views
и поместить содержимое страницы ошибки там. Как отметил Антонио, вы можете передавать данные внутри array()
.
я любезно позаимствовал этот метод из https://github.com/andrewelkins/Laravel-4-Bootstrap-Starter-Site
Как передать запрос: url() для пропущенного клинка. – alayli
Отредактировано для ответа на ваш вопрос. –
Здравствуйте ... возможно, чтобы предыдущий URL-адрес добавил ссылку на страницу 404, например «Перейти на предыдущую страницу»? – SoldierCorp