0

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

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

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

谢谢!

4

1 回答 1

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();
   }
}
于 2016-10-10T08:06:23.770 回答