Composer:为什么我的命名空间模型不能在Laravel4中自动加载?

时间:2014-07-29 17:42:12

标签: laravel-4 composer-php autoload

我觉得我已经根据关于此的大量问题/答案尝试了一百万种不同的东西......但我仍然遗漏了一些东西。 (这是一个Laravel 4项目。)

我在模型路径中添加了一个业务逻辑目录,就像app/models/businesslogic一样 该目录中的CcGateway.php名称为namespace BusinessLogic;

在我的composer.json中,我开始尝试

"autoload": {
    "classmap": [
        "app/models/businesslogic"
    ],

composer dump-autoload之后,它仍会抛出:

  

Class' BusinessLogic \ CcGateway'找不到


所以我试过了两个

"autoload": {
    "psr-4": {
        "App\\models\\": "app/models"
        },

        "App\\models\\businesslogic\\": "app/models/businesslogic"

无济于事。

最后,我尝试更改名称空间(在类脚本和use语句中,但不更改composer.json)到Models\BusinessLogic,但仍然没有运气。< / p>

我知道假设很容易,所以我必须忽略或误解一些简单的东西。它是什么?

1 个答案:

答案 0 :(得分:0)

模型目录以小写(app / models / businesslogic)命名,但您的命名空间在Capital(BusinessLogic)中。尝试重命名您的目录以匹配“BusinessLogic”。

此外,您实际上不需要向classmap或PSR-4添加任何内容,因为models目录已经包含在标准classmap配置中,并且会自动拾取所有子目录。