laravel创造了一个帮手

时间:2014-07-29 08:12:07

标签: php laravel composer-php

我创建了文件helpers.php(app / helpers.php)

function test($var)
{
    return $var;
}

我已将app / start / global.php更改为

ClassLoader::addDirectories(array(

    app_path().'/commands',
    app_path().'/controllers',
    app_path().'/models',
    app_path().'/database/seeds',
    app_path().'/helpers.php',

));

还将composer.json改为

"autoload": {
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations",
            "app/database/seeds",
            "app/tests/TestCase.php",
            "app/helpers.php"
        ]
    },

但是我什么时候试图在控制器中调用这个函数

$data = Test::all();
return test($data);

它给我一个错误

Call to undefined function test()

出了什么问题?

2 个答案:

答案 0 :(得分:1)

添加 -

require app_path().'/helpers.php';

app/start/global.php结束时 你不必将它添加到composer.json并设置 -

ClassLoader::addDirectories(array(

app_path().'/commands',
app_path().'/controllers',
app_path().'/models',
app_path().'/database/seeds',
));
希望这会奏效。

答案 1 :(得分:1)

@ sgt的方法运行正常,但如果您仍想使用composer,请使用files自动加载器。

<强> composer.json

"autoload": {
    ...
    "files": [
        "path/to/my/file.php"
    ]
    ...
}

在对composer dump-autoload指令进行更改后,不要忘记autoload