Laravel Blade - 自定义助手

Posted

技术标签:

【中文标题】Laravel Blade - 自定义助手【英文标题】:Laravel Blade - custom helper 【发布时间】:2018-11-21 20:28:38 【问题描述】:

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

<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】:

您可以创建自己的刀片帮助文件。 创建您的文件(例如在 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 中的 autoload 部分(记得在 psr4 声明中根据您的项目设置命名空间);


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

注意,此时您可能需要清除缓存。

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

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

【讨论】:

以上是关于Laravel Blade - 自定义助手的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 加载并初始化自定义助手类

创建自定义助手类?

如何在车把 ember 中定义自定义助手

如何在自定义助手中访问排毒元素匹配器?

jQuery UI Draggable 的自定义助手

如何将模型传递给剃须刀页面自定义助手