Laravel Blade - 定制助手

时间:2018-06-12 12:25:54

标签: laravel format helper laravel-blade

我有很多数字的表,我想为所有数字使用数字格式。所以我现在有这个:

<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 :(得分:1)

您可以创建自己的刀片帮助文件 创建您的文件(例如在 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, ' ', ' ');

    }

}

然后将此文件添加到 autoload 部分中的 composer.json (请记住根据psr4声明中的项目设置命名空间);

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

N.B此时您可能想要清除缓存。

然后在您的刀片文件中使用;

<td class="text-right chip-width">{{ my_custom_number_formt($float['chips']['value']) }}</td>