Laravel,如何在App \ Exceptions \ Handler.php中的handle()中获取控制器实例或类名

时间:2016-10-09 17:43:02

标签: laravel exception exception-handling controller httpexception

我环顾四周,似乎没有找到关于此的答案或讨论。

是否可以在" handle()"中获取原始控制器的实例。 App \ Exceptions \ Handler.php中的方法?

我想知道如何做到这一点,以便知道Exception发生在哪个控制器上。

谢谢!

1 个答案:

答案 0 :(得分:0)

您有一个 $e->getTrace() ,它返回异常对象的堆栈跟踪。 但是你仍然不知道控制器所在的索引,除非你进行虚拟搜索:

foreach ($e.getTrace() as $traceElement) {
   if (preg_match('/path\/to\/your\/Http\/Controllers\/(.*?)Controller/', $traceElement['class'])) {
         $controllerClass = traceElement['class'];
         $contrllerObject = new $controllerClass();
   }
}