Пользовательские директивы Laravel вызывают ошибку HTTP 500 - PullRequest
0 голосов
/ 27 декабря 2018

Не происходит на локальном веб-сервере, только на хосте, PHP 7.1.Получите только пустую страницу ошибки 500, никаких подсказок, ничего в журналах.

У меня есть пара пользовательских директив Blade, которые я использую для генерации только HTML-кода для кнопки загрузки и даты последнего изменения внутри,для страницы загрузок со списком многочисленных загрузок.

Директивы в 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, "'"))]);
    });

Просмотры, на которые он ссылается:

file-date.blade.php:

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

download-button.blade.php

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

Используется примерно так внутри шаблона:

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

Отлично работает на другой странице дляотдельный набор загрузок, но что-то вызывает его падение на главной странице загрузок, и я вообще не могу получить какую-либо информацию со страницы ошибок.

Я пробовал комментировать разделы, но он просто не хочет работать на этой конкретной странице.

Есть совет?Возможно, какой-нибудь способ получить больше информации об ошибке?Насколько я могу судить, режим отладки полностью включен.

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Может быть, вы можете попробовать включить режим отладки в вашем файле .env, чтобы увидеть, можете ли вы получить какие-либо полезные сообщения об ошибках

APP_DEBUG=true
0 голосов
/ 27 декабря 2018

Несколько советов:

  1. Проверьте журнал веб-сервера.Путь к журналу можно найти в файле конфигурации в поле error_log.

  2. Кроме того, вы можете проверить журнал php-fpm, если вы его используете.

  3. А, каркас журнала ларавелла.По умолчанию storage/logs

  4. Наконец, вы можете использовать try catch, попробовать «код проблемы» и поймать его, затем распечатать или записать в файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...