我环顾四周,似乎没有找到关于此的答案或讨论。
是否可以在 App\Exceptions\Handler.php 中的“handle()”方法中获取原始控制器的实例?
我想知道如何做到这一点,以便知道异常发生在哪个控制器上。
谢谢!
我环顾四周,似乎没有找到关于此的答案或讨论。
是否可以在 App\Exceptions\Handler.php 中的“handle()”方法中获取原始控制器的实例?
我想知道如何做到这一点,以便知道异常发生在哪个控制器上。
谢谢!
您有一个$e->getTrace()
返回异常对象的堆栈跟踪。但是您仍然不知道您的控制器位于哪个索引中,除非您对其进行虚拟搜索:
foreach ($e.getTrace() as $traceElement) {
if (preg_match('/path\/to\/your\/Http\/Controllers\/(.*?)Controller/', $traceElement['class'])) {
$controllerClass = traceElement['class'];
$contrllerObject = new $controllerClass();
}
}