我知道laravel会缓存刀片文件,当刀片服务器出现错误时,版本5.3中的错误会是这样的:
[DisplayFormat(DataFormatString = "{0:yyyy/dd/MM}")]
然后我可以转到缓存文件并找到确切的行
但是在版本5.4 laravel中引用了确切的刀片文件(不是缓存文件)但没有行号!像这样:
Undefined offset: 0 (View:b5c0ef4df49585eadd7fc1fa15b2d8a03e8c3bdd.php) line: 47
现在如何找到错误?
更新
我知道问题出在哪里,以及如何解决这个问题,但我希望Laravel自动告诉我这是否必须手动查找。如果刀片文件很大怎么办?
答案 0 :(得分:1)
您可以使用Laravel Debugbar
。这很容易使用。按照以下链接,您将得到您想要的。
答案 1 :(得分:1)
这不是查找在缓存视图文件中引发的错误的简便方法。 但是如果您关闭了调试模式,并且很快就会发现它, 我建议这样: 我知道这不整洁。
1-在./storage/laravel/log/today.log中发现错误: (b5c0ef4df49585eadd7fc1fa15b2d8a03e8c3bdd.php)(第47行)
2- cat ./storage/framework/view/b5c0ef4df49585eadd7fc1fa15b2d8a03e8c3bdd.php(错误日志中的文件名)
3-将内容从终端复制到编辑器(从第一行到最后)
4-您可以找到越野车线。
答案 2 :(得分:0)
未定义的偏移量:0
通常,当您尝试访问不存在的数组索引时会发生此错误。在您的情况下,它是0
索引。要删除此错误,只需检查数组是否具有指定的索引:
isset( $m->translations[0]->role ) ? $m->translations[0]->role : ''
或在刀片中,您可以尝试:
{{ $m->translations[0]->role or '' }}
答案 3 :(得分:0)