2016-06-29 2 views
0

Я пытаюсь реализовать обработку исключений в своем приложении. Для этой структуры Laravel имеет свой собственный механизм обработки исключения с использованием метода отчета и рендеринга. Но для реализации исключения мне нужно отслеживать источник, из которого было поднято исключение, например. конкретную страницу, маршрут и т. д. Для этого мне нужно передать URL-адрес, чтобы сообщить и отобразить метод, но не смог этого сделать. Что необходимо сделать, чтобы реализовать это в следующем отчете и функции рендеринга.Реализация обработки исключений в Laravel 5.2

public function report(Exception $e) 
{ 
    parent::report($e); 
} 


public function render($request, Exception $e) 
{ 
    /* Token mismatch Exception handler start */ 
    if ($e instanceof \Illuminate\Session\TokenMismatchException) { 
     return response()->view('errors.sessionExpire', [], 500); 
     } 
    /* Token mismatch Exception handler start */ 
    return parent::render($request, $e); 
} 

ответ

2

Как вы можете видеть из своего примера, у вас есть экземпляр запроса в списке аргументов. И Request имеет все специфичные для запроса данные, такие как текущий маршрут, URL-адрес и т. Д.

$request->url(); // Current request URL 
$request->fullUrl(); // With query parameters 
$request->route(); // Get the route closure for this request path 

Вы также можете создавать свои собственные классы исключений, которые принимают столько параметров, сколько пожелаете!

И менее удобный способ уже упоминался - вы могли бы пройти через след исключения.

1

Вы должны использовать Exception::getTrace

var_dump($e->getTrace()); 

выше линии даст вам все подробности, касающиеся исключения.

public function report(Exception $e){ 
    echo '<pre>'; // add this line 
    print_r($e->getTrace()); // add this line 
    parent::report($e); 
} 
Смежные вопросы