laravel自动加载助手与作曲家

时间:2014-01-10 00:49:12

标签: php laravel-4

Laravel 4.x. 嗨,我正在学习助手。我有一个我想要加载的助手(helpers.php),所以我在View中的功能将能够处理数据。

我的composer.json

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

但是通过运行:composer dump-autoload --optimize 我没有错误,但我的视图不处理数据

查看

 <img src="foo($photo->user->name) }}.jpg" alt="" > 

我的帮助.php

function foo($email)
{
    //process some data here that will return the name
    return "john";

}

2 个答案:

答案 0 :(得分:4)

如果你没有得到任何关于不存在功能的错误,我认为你可能是错的。

你有这个:

<img src="foo($photo->user->name) }}.jpg" alt="" > 

但应该有这个:

<img src="{{ foo($photo->user->name) }}.jpg" alt="" > 

答案 1 :(得分:3)

classes

中创建app/目录

app/start/global.php修改为

ClassLoader::addDirectories(array(
  app_path().'/commands',
  app_path().'/controllers',
  app_path().'/models',
  app_path().'/database/seeds',
  app_path().'/classes', //add this
));

在新创建的Helpers.php目录中创建classes文件。

<?php
class Helpers {
    public static function myCoolFunction() {
        return "so cool";
    }
}

有时您可能需要运行composer dump-autoload

在这里:Helpers::myCoolFunction();

加成

另一种快速方式(实际上有几种方法),但不推荐,将你的功能放到boostrap/start.php。你可以随时随地打电话。