如何在Laravel刀片文件中调用Helper的静态函数?

时间:2018-03-23 14:20:25

标签: laravel laravel-5 laravel-5.3

我在路径中有自定义类:

app/Http/Helpers/Helper/Helper.php 

with namespace是: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

3 个答案:

答案 0 :(得分:1)

将名称空间更新为:

namespace App\Http\Helpers\Helper;

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

答案 1 :(得分:1)

像其他人一样,制作helpers.php(在root中,.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"
    ]
},

现在您可以在代码库中随处调用辅助函数

答案 2 :(得分:0)

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

//composer.json

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


//app.php

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

并且在你的刀片中你可以使用 if Helper.php 是静态函数

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