Хобрук: Ваш путь к мастерству в программировании

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

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

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

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

404.blade.php
503.blade.php

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

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

Вот список всех ошибок, которые я только что погуглил: 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);
}

to

/**
 * 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
}

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

Спасибо.


  • Я что-то не так понял, поэтому нет ответов? 09.07.2015
  • У меня похожая проблема с этим 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); } 09.07.2015

Ответы:


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, но у вас нет статьи с таким идентификатором/слагом в базе данных, вы все равно получите сообщение whoops....

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

10.07.2015
Новые материалы

Создание кнопочного меню с использованием HTML, CSS и JavaScript
Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

Внедрите OAuth в свои веб-приложения для повышения безопасности
OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

Классы в JavaScript
class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

Как свинг-трейдеры могут использовать ИИ для больших выигрышей
По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

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

Обзор: Машинное обучение: классификация
Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

Разработка расширений Qlik Sense с qExt
Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..