如何从 Laravel blade 文件中的 Helper 调用静态函数?

How to call static function from Helper in Laravel blade file?

我在路径中有自定义 class:

app/Http/Helpers/Helper/Helper.php 

命名空间是:namespace App\Helpers;

它有一个静态方法:

public static function getMonthName($monthNumber)
{
    return date("F", mktime(0, 0, 0, $monthNumber, 1));
}

我试图从模板中调用此方法 Laravel:

{{ \App\Http\Helpers\Helper::getMonthName($i) }}

但是不行:

Class 'App\Http\Helpers\Helper' not found

将命名空间更新为:

namespace App\Http\Helpers\Helper;

命名空间必须与class路径相同,因为laravel使用spl_autoload动态加载classes

像其他人一样,制作 helpers.php(在根目录中,.env 文件所在的位置)。

if (! function_exists('get_month_name')) {
    function get_month_name(int $month)
    {
        return date('F', mktime(0, 0, 0, $month, 1));
    }
}

并在您的 composer.json 中自动加载它:

"autoload": {
    "psr-4": {
        "App\": "app/"
    },
    "files": [
        "helpers.php"
    ]
},

现在您可以在代码库的任何地方调用您的辅助函数

如果有人试图在 blade 中使用辅助函数,请确保您执行以下操作。

//composer.json

"files":[
        "app/Helpers/Helper.php"
 ],


//app.php

'aliases'=> [
 ...
 'Helper'=> 'App\Helpers\Helper::class',
 ]

并且在您的 blade 中您可以使用 if Helper.php 是静态函数

{{ Helper::getStatusColor($item->status) }}

最好将其添加到您的 config/app.php.

'aliases' => [
    'Helper' => App\Helpers\Helper::class,
]