在哪里我可以在视图中访问自定义函数(laravel 5.3)?

时间:2016-12-24 07:19:53

标签: php laravel laravel-5.3

我的功能是这样的:

function romanic_number($integer, $upcase = true) 
{ 
    $table = array('M'=>1000, 'CM'=>900, 'D'=>500, 'CD'=>400, 'C'=>100, 'XC'=>90, 'L'=>50, 'XL'=>40, 'X'=>10, 'IX'=>9, 'V'=>5, 'IV'=>4, 'I'=>1); 
    $return = ''; 
    while($integer > 0) 
    { 
        foreach($table as $rom=>$arb) 
        { 
            if($integer >= $arb) 
            { 
                $integer -= $arb; 
                $return .= $rom; 
                break; 
            } 
        } 
    } 

    return $return; 
} 

我想要的是,我可以像这样访问:

{{ romanic_number(2) }}

结果:II

我将自定义函数放在哪里进行查看?

我尝试将自定义函数放在控制器中,但它失败了

更新

我在文件夹app中制作文件夹助手。然后我在Helpers文件夹中创建文件helper.php(mysystem / app / Helpers / helper.php)

我说这个:

<?php

if (! function_exists('romanic_number')) 
{
    function romanic_number($integer, $upcase = true) 
    { 
        ...

        return $return; 
    } 
}

我在composer.json中添加“app / Helpers / helper.php”,如下所示:

"autoload": {
    "psr-4": {
        "Illuminate\\Support\\": ""
    },
    "files": [
        "helpers.php",
        "app/Helpers/helper.php"
    ]
},

然后我运行composer dump-autoload

存在这样的错误:

Call to undefined function romanic_number() (View: C:\xampp\htdocs...

3 个答案:

答案 0 :(得分:3)

在文件夹helpers.php中创建一个名为app/Helpers的文件(首先必须创建Helpers文件夹),将所有功能放在该文件中。

然后告诉作曲家composer.json中的这个文件为:

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/"
    },
    "files": [
        "app/Helpers/helper.php",
    ]
},

然后执行composer dump-autoload,您可以在视图或其他任何地方使用它。

例如在视图中:

{{ romanic_number(2) }}

答案 1 :(得分:2)

你可以create custom helpers.php file并在那里定义所有助手:

if (! function_exists('romanic_number')) {
    function romanic_number($value)
    {
        $romanic = ....;
        return $romanic;
    }
}

然后将其添加到composer.json,以便Laravel可以自动加载它:

"autoload": {
    ....
    "files": [
        "app/someFolder/helpers.php"
    ]
},

答案 2 :(得分:1)

您可以创建自己的自定义帮助程序。创建CustomHelper.php文件并在那里添加您的功能&amp;包含在composer.json文件中,如下所示

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