Laravel 5.1 - ошибки просмотров на живом сайте, какие или один для всех и как реализовать?

1

Я создаю приложение Laravel, и все работает отлично (насколько я вижу), и теперь я хотел бы сделать сайт общедоступным.

Однако я не могу понять, как реализовать пользовательские сообщения для плохих/неавторизованных запросов.

Я знаю, что могу помещать представления в /resources/views/errors/folder, например:

404.blade.php
503.blade.php

... и так далее.

Однако я не уверен, для каких ошибок следует создавать представления или есть более простой способ сделать один основной вид для всех ошибок. Нет причин уведомлять пользователя о том, какая ошибка произошла, но если это можно сделать легко, я бы пошел таким путем.

Вот список всех ошибок, которые я только что просмотрел в Google: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

Вот документация по ошибкам Laravel 5.1: http://laravel.com/docs/5.1/errors

Я попытался изменить файл /app/Exceptions/Handler.php и в нем функция

/**
 * Render an exception into an HTTP response.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  \Exception  $e
 * @return \Illuminate\Http\Response
 */
public function render($request, Exception $e)
{
    return parent::render($request, $e);
}

в

/**
 * Render an exception into an HTTP response.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  \Exception  $e
 * @return \Illuminate\Http\Response
 */
public function render($request, Exception $e)
{
    return view('errors.allerrors');  // only this line is changed
}

но это возвращает только пустую страницу.

Благодарю.

  • 0
    Я что-то не так понял, вот почему нет ответов?
  • 0
    У меня похожая проблема с этой public function render($request, Exception $e) { if ($e instanceof \Illuminate\Session\TokenMismatchException) { return redirect()->back()->withInput()->with('token', csrf_token()); } return parent::render($request, $e); }
Теги:
error-handling
laravel-5

1 ответ

1

Я оставлю это как частичный ответ, если кто-то окажется здесь с той же проблемой.

Ответ не будет перенаправлять все ошибки на одну и ту же страницу, но, насколько я могу судить, справится с большинством ошибок.

Добавьте эти файлы в папку /resources/views/errors/:

401.blade.php - эта страница будет отображаться, если пользователю не разрешен доступ к веб-странице (когда вы используете какую-либо аутентификацию пользователя)

404.blade.php - эта страница будет отображаться, если пользователь пишет URL-адрес, который вы еще не объявили в файле /app/Http/routes.php

503.blade.php - эта страница будет отображаться, когда ваш сайт не работает, т.е. при запуске команды php artisan down

Есть еще одна страница ошибки, о которой я не знаю, как умереть, лучше сказать, я не знаю ее номер ошибки. Он показывает, когда пользователь пытается получить доступ к экземпляру модели (я не знаю правильную терминологию здесь, поэтому, пожалуйста, исправьте меня), которой не существует. В примере; если пользователь пытается получить доступ к yourwebsite.com/articles/123 но у вас нет статьи с этим id/slug в вашем db, вы все равно получите сообщение whoops...

Я не полностью удовлетворен этим решением, так как могут быть другие ошибки, которые я не смог произвести, но это лучшее/единственное решение, которое у меня есть.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню