【问题标题】:Laravel blade debug view name on errorLaravel 刀片调试视图名称出错
【发布时间】:2013-11-20 21:07:15
【问题描述】:

当视图中出现一些错误时,L4 会显示一个很好的跟踪,但缓存的文件名: 打开:/var/www/webpage/app/storage/views/1154ef6ad153694fd0dbc90f28999013

如何在视图渲染到缓存期间保存视图的路径/名称(在评​​论或其他内容中)? 或者更好 - 在调试错误页面中显示它(它叫做 whoops 什么的?)

谢谢 ;)

【问题讨论】:

    标签: debugging laravel views blade


    【解决方案1】:

    这不完全是个问题,这是您视图的编译版本。

    Laravel Blade System 会将您所有的视图和子视图编译到一个文件中,如果您没有对其进行任何更改,它将始终尝试使用编译后的版本,以加速您的系统。

    有时很难知道我们的某个观点与该错误有关。使用 Sublime 文本,我所做的是按 CTRL-P(windows)并粘贴已编译视图的编号(1154ef6ad153694fd0dbc90f28999013),它会立即带给我。

    当然,您不会对其进行任何更改。这只是查找您有问题的视图的方法,因此您可以找到真实文件并修复它。如果您知道哪个文件是有问题的,则不必这样做,直接转到您的文件。

    【讨论】:

    • 这是一个小问题,因为我不需要你可以用 CTRL-P 带来的编译视图,你在原始视图文件中进行修复
    • 您不会对其进行任何更改。这只是查找您有问题的视图的方法,因此您可以找到真实文件并修复它。如果您知道哪个文件是有问题的,则不必这样做,直接转到您的文件。
    • 您是否明白没有简单的方法可以找到原始视图文件?我需要搜索具有类似文本的文件,例如: find 。 -xdev -type f -print0 | xargs -0 grep -H "some_file_content"
    • 这应该是公认的答案。行号对应于编译后的视图,而不是刀片模板。
    【解决方案2】:

    我不知道如何解密视图名称,但我做的一种方法是

    {{dd('will you reach here ')}}
    

    试图将这条线从一个视图移动到另一个视图,以观察 php 渲染到达的位置。

    我知道这不是正确的方法,也不是专业的方法,但在某些情况下它可能会有所帮助。

    【讨论】:

      【解决方案3】:

      解决此问题的一种方法是在得到回显的部分中添加html cmets(不是blade,因为它们不会在编译视图中呈现)。

      @section('content)
      
      <!-- FILE: app/views/main/index.blade.php -->
      
      <Your Content Goes Here>
      
      @stop
      

      此 html 注释将在视图的编译源中呈现。当然,您必须首先检查编译后的视图,以确定哪个视图是有问题的。但根据我的经验,这种方法几乎一直有效。

      【讨论】:

      • 嗯,这是一个对我来说很好的快速解决方法,谢谢 =)
      • 我会用类似@if(env('APP_DEBUG') == 1) &lt;!-- comment --&gt; @endif 的东西来包装它。即使文件名不是敏感信息,最好不要将任何调试信息泄露给最终用户。
      • 我同意@Fx32。
      • &lt;!-- {{ __FILE__ }} --&gt; 显示编译后的文件名,而不是源代码
      【解决方案4】:

      我创建了一个助手来检查你是在本地工作还是在开发模式下工作,然后它会输出一个 HTML 注释。

      {{ printViewComment('mockup/reports@content') }}
      
      <!-- Template: mockup/reports@content -->
      

      我选择将 cmets 命名为 path.file_name@yeild_name,但我只希望这是一个自动功能。

      【讨论】:

      • 谢谢。还有一个更烦人的问题,当视图 eval 出现错误时,我们得到一个空白页而不是指向错误行的指针...
      【解决方案5】:

      我在查看源代码后找到了答案, 当在哎呀!页面,只要在侧边栏中寻找render,就会有视图文件的名称...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-08-03
        • 2017-08-07
        • 2019-04-23
        • 1970-01-01
        • 1970-01-01
        • 2016-09-09
        • 2015-10-03
        • 2018-03-23
        相关资源
        最近更新 更多