【问题标题】:Get original path and filename of hashed name in Laravel view在 Laravel 视图中获取散列名称的原始路径和文件名
【发布时间】:2016-11-25 11:14:29
【问题描述】:

我在生产服务器中有一个 Laravel 应用程序,它在渲染视图时会产生异常。日志文件打印了有关异常发生位置的堆栈跟踪,但带有哈希视图名称。

如何获取散列视图的原始路径和文件名?因为我只能从服务器的错误日志中调试。例如使用这个stacktrace,我想找到698a6499f344ea0485830fd76f437b7ae1833431.php的原始文件路径和名称

ErrorException: Undefined property: stdClass::$balance_perdana in /var/app/current/storage/framework/views/698a6499f344ea0485830fd76f437b7ae1833431.php:44
Stack trace:
#0 /var/app/current/storage/framework/views/698a6499f344ea0485830fd76f437b7ae1833431.php(44): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(8, 'Undefined prope...', '/var/app/curren...', 44, Array)
#1 /var/app/current/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php(42): include('/var/app/curren...')

有使用 laravel debugbar (https://github.com/barryvdh/laravel-debugbar) 帮助查找相关视图的解决方案,但我认为这不是一个好习惯,在生产环境中激活调试模式。

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    Laravel 存储编译后的版本文件以加快系统执行速度。

    一旦你的文件被编译并且如果你不对其进行更改,那么 laravel 会直接执行这个编译后的版本,这就是 laravel 执行快速进程工作的方式。

    因此,显示文件的原始名称是不可行的。

    现在对于解决方案,您可以将带有 <!-- BLADEFILENAME--> 的刀片文件名注释到特定文件中。因此,在遇到任何错误时,您可以了解这是哪个文件。

    审核参考:Laravel blade debug view name on error

    【讨论】:

    • 谢谢,但我仍然很好奇是否有另一种方法来获取文件名而无需在每个文件中手动添加注释
    • 好的,我会审核并为您提供解决方法。
    • 是的,您可以在 master.blade.php 文件中尝试类似 <!-- {{ __FILE__ }} --> 的相同选项。
    • <!-- {{ __FILE__ }} --> 显示编译后的文件名,而不是源代码
    • @PaulH stackoverflow.com/a/36022521/470749 展示了如何在 Laravel Blade 中获取视图名称。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 2015-02-12
    相关资源
    最近更新 更多