【问题标题】:laravel creating a helperlaravel 创建一个助手
【发布时间】:2014-07-29 08:12:06
【问题描述】:

我已经创建了文件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()

怎么了?

【问题讨论】:

  • 它告诉实际的错误..你在某个地方调用了一个名为'pre_r'的方法。
  • 已编辑;抱歉应该有 test()

标签: php laravel composer-php


【解决方案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',
));

希望这会奏效。

【讨论】:

  • 这可能不是推荐的方法,但至少它有效,谢谢
【解决方案2】:

@sgt 的方法效果很好,但如果您仍想使用 composer,请使用 files 自动加载器。

composer.json

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

在更改autoload 指令后不要忘记composer dump-autoload

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-04
    • 2020-11-19
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多