Директива Laravel Blade Проверка, если действительная дата не действует - PullRequest
0 голосов
/ 24 марта 2019

В моем AppServiceProvider у меня есть пользовательская директива блейда, которую я настроил для согласованного форматирования дат в пользовательском интерфейсе этого приложения. Я хочу, чтобы он проверил, что это правильная дата, прежде чем пытаться ее отформатировать.

Почему это не работает:

Blade::directive('dateui', function ($date) {
    if ($date instanceof \DateTime || $date instanceof \Illuminate\Support\Carbon) {
        return "<?php echo ($date)->format(config('rentallink.uiDateFormat')); ?>";
    }
});

Тем не менее, когда я помещаю условные выражения в оцененный php, это работает.

Blade::directive('datetimeui', function ($date) {
    return "<?php
        if ($date instanceof \DateTime || $date instanceof \Illuminate\Support\Carbon) {
            echo ($date)->format(config('rentallink.uiDateFormat'));
        }
    ?>";
});

Если я выбрасываю $ date, это углеродный объект, поэтому я не понимаю, как не работает базовое условие. Я ассум

Да, я очищаю скомпилированные представления между запросами:

php artisan view:clear
...