Laravel Blade - пользовательский помощник - PullRequest
0 голосов
/ 12 июня 2018

У меня есть таблица с большим количеством чисел, и я хочу использовать числовой формат для всех них.Итак, сейчас у меня есть это:

<tbody>
    @foreach($table['float']['chips_amount'] as $float)
        <tr>
            <td class="no-border"></td>
            <td class="text-right chip-width">{{ number_format($float['chips']['value'], 0, ' ', ' ') }}</td>
            <td class="text-right count-width">{{ $float['count'] }}</td>
            <td class="text-right">{{ number_format($float['chips']['value'] * $float['count'], 0, ' ', ' ') }}</td>
        </tr>
    @endforeach
    <tr>
        <td class="no-border" colspan="3"></td>
        <td class="text-right value-width bold-border">{{ number_format($table['float']['amount'], 0, ' ', ' ') }}</td>
    </tr>
</tbody>

Но я просто повторяю ту же функцию number_format (), и может возникнуть проблема, когда кто-то решит, что формат будет другим.Затем я должен изменить все форматы в таблице.У меня есть некоторый опыт работы с фреймворком Nette, и существует возможность, что я могу иметь свой собственный помощник, а затем использовать его в шаблоне, например: {{ $anyNumber|myCustomFormat }}, где после конвейера у меня есть собственный пользовательский помощник.Есть ли что-то подобное в шаблонах Laravel Blade?Я ничего не нашел в документации.

1 Ответ

0 голосов
/ 12 июня 2018

Вы можете создать свой собственный файл справки blade-сервера.
Создать свой файл (скажем, в app / Helpers / bladeHelpers.php ) и добавить код.Например;

<?php
if (! function_exists('my_custom_number_formt')) {
    /**
     * Format number
     *
     * @param $value
     * @param $attribute
     * @param $data
     * @return boolean
     */
    function my_custom_number_formt($value)
    {

        return number_format($value, 0, ' ', ' ');

    }

}

Затем добавьте этот файл в ваш composer.json в разделе автозагрузка (не забудьте указать пространство имен в соответствии с вашим проектом в объявлении psr4);

{
... rest of file
"autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/",
            "MyApp\\Custom\\": "src/"
        },
        "files": [
            "app/Helpers/bladeHelpers.php"
        ]
    },
... rest of file
}

NB Возможно, вы захотите очистить кэш на этом этапе.

Тогда используйте в своих блейд-файлах;

<td class="text-right chip-width">{{ my_custom_number_formt($float['chips']['value']) }}</td>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...