如何在 laravel 5.4 blade 中找到确切的错误行?

How to find exact error line in laravel 5.4 blade?

我知道 laravel 缓存 blade 文件,当 blade 出现错误时,在 5.3 版本中错误将是这样的:

Undefined offset: 0 (View:b5c0ef4df49585eadd7fc1fa15b2d8a03e8c3bdd.php) line: 47

然后我可以转到缓存文件并找到确切的行,

但在 5.4 版中 laravel 引用了确切的 blade 文件(不是缓存文件)但没有行号!像这样:

Undefined offset: 0 (View: C:\wamp64\www\project\resources\views\events\partial\event_details_members.blade.php)
in Collection.php (line 1537)

现在如何找到错误?

更新

我知道问题出在哪里,以及如何解决,但我希望 Laravel 自动告诉我是否需要手动查找。如果 blade 文件很大怎么办?

您可以使用 Laravel Debugbar。这很容易使用。按照下面link你会得到你想要的

https://github.com/barryvdh/laravel-debugbar

从 Laravel 5.7 开始,输出在左侧显示堆栈帧,在右侧显示所选帧的详细信息。如果浏览堆栈,您会发现其中的一个条目是 blade 文件的解析版本(通常位于堆栈底部的 (main) 框架附近)。单击此框架会将您带到导致该异常的 blade 文件的确切行。

找到在 缓存视图文件 .

中引发的错误并非易事

但是如果你的调试模式关闭并且你很快就会发现它,

我建议执行以下步骤:

我知道这不整洁。

1- 在 ./storage/laravel/log/today.log 中查找错误:

例如:

(b5c0ef4df49585eadd7fc1fa15b2d8a03e8c3bdd.php) (line : 47)

2-输出文件内容usng cat :

cat ./storage/framework/view/b5c0ef4df49585eadd7fc1fa15b2d8a03e8c3bdd.php

(来自错误日志的文件名)

3- 将内容从终端复制到编辑器(从第一行到最后)

4- 你可以找到越野车线。