Ответ 1
Перейдите к ресурсам/представлениям/ошибкам и создайте файл 404.blade.php с тем, что вы хотите на своей странице 404, и Laravel позаботится обо всем остальном.
Это сводит меня с ума. Я работаю с Laravel 5, и похоже, что документы для 4.2 и генерация 404 страниц не работают.
Во-первых, нет global.php, поэтому я попытался поместить следующее в routes.php:
App::missing(function($exception)
{
return Response::view('errors.missing', array(), 404);
});
Это приводит к ошибке "метод missing() не найден"
Для параметра Debug установлено значение false.
Я искал и искал, но пока не нашел информации о настройке 404 страниц в Laravel 5. Поблагодарил бы за любую помощь.
Перейдите к ресурсам/представлениям/ошибкам и создайте файл 404.blade.php с тем, что вы хотите на своей странице 404, и Laravel позаботится обо всем остальном.
если вы хотите иметь какое-то глобальное решение, вы можете внести изменения в /app/Exceptions/Handler.php, добавив следующий код
public function render($request, Exception $e)
{
if ($this->isHttpException($e)) {
$statusCode = $e->getStatusCode();
switch ($statusCode) {
case '404':
return response()->view('layouts/index', [
'content' => view('errors/404')
]);
}
}
return parent::render($request, $e);
}
Мне нравится подход к описанию дела, но у него есть некоторые проблемы, идущие на глубину.
Тем не менее, это уловляет все ошибки:
Route::any('/{page?}',function(){
return View::make('errors.404');
})->where('page','.*');
Laravel 5 уже имеет предопределенный метод визуализации (строка 43) в приложении/Исключения /Handler.php. Просто вставьте код перенаправления перед parent :: render. Вот так,
public function render($request, Exception $e)
{
if ($e instanceof ModelNotFoundException)
{
$e = new NotFoundHttpException($e->getMessage(), $e);
}
//insert this snippet
if ($this->isHttpException($e))
{
$statusCode = $e->getStatusCode();
switch ($statusCode)
{
case '404': return response()->view('error', array(), 404);
}
}
return parent::render($request, $e);
}
Примечание. Мое мнение связано с ресурсами/представлениями. Вы можете как-то положить его куда угодно.
В Laravel 5 вы можете просто добавить пользовательский файл 404.blade.php в разделе ресурсов/представлений/ошибок и его. Для других ошибок, таких как 500, вы можете попробовать следующее в своем приложении /Exeptions/Handler.php:
public function render($request, Exception $e)
{
if ( ! config('app.debug') && ! $this->isHttpException($e)) {
return response()->view('errors.500');
}
return parent::render($request, $e);
}
И сделайте то же самое для 500 HTTP Exeptions