【问题标题】:Laravel custom directives cause HTTP ERROR 500Laravel 自定义指令导致 HTTP ERROR 500
【发布时间】:2018-12-27 01:03:35
【问题描述】:

不会在本地 Web 服务器上发生,仅在主机 PHP 7.1 上发生。只得到一个空白的 500 错误页面,没有任何线索,日志中什么也没有。

我有几个自定义 Blade 指令,用于生成下载按钮的 HTML 和 a 中的最后修改日期,用于列出大量下载的下载页面。

AppServiceProvider.php 中的指令:

    Blade::directive('fileDate', function ($file) {
        if(file_exists($file)) {
            $timestamp = filemtime(str_replace(["'", '"'], "", $file));
            return view('components.file-date', ['timestamp' => $timestamp]);
        }

        return '-';
    });

    Blade::directive('downloadButton', function($file) {
        return view('components.download-button', ['link' => asset(trim($file, "'"))]);
    });

它引用的视图:

文件日期.blade.php:

<span class="filedate">{{ date('d/m/Y H:i', $timestamp) }}</span>

下载-button.blade.php

<a href="{{ $link }}" class="button secondary">Download</a>

在模板中这样使用:

<td>                         
   @fileDate('media/file1.zip')
   @downloadButton('media/file1.zip')
</td>

它在另一个页面上可以正常下载一组单独的下载,但是某些原因导致它在主下载页面上掉下来,我根本无法从错误页面中获取任何类型的信息。

我已尝试将部分注释掉,但它只是不想在此特定页面上工作。

有什么建议吗?也许某种方式可以获取有关错误的更多信息?据我所知,调试模式已完全启用。

【问题讨论】:

    标签: php laravel laravel-blade


    【解决方案1】:

    一些建议:

    1. 检查 Web 服务器日志。您可以在配置文件中的“error_log”字段中找到日志路径。

    2. 另外,如果你使用的话,你可以查看php-fpm的日志。

    3. 还有,laravel 框架日志。缺席storage/logs

    4. 最后,您可以使用try catch,尝试“问题代码”并捕获它,然后将其打印或记录到文件中。

    【讨论】:

      【解决方案2】:

      也许你可以尝试在你的 .env 文件中打开调试模式,看看你是否能得到任何有用的错误信息

      APP_DEBUG=true
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-16
        • 2020-02-14
        • 1970-01-01
        • 2019-05-01
        • 1970-01-01
        相关资源
        最近更新 更多