密钥是./composer.json中的副本

amm*_*zie 5 php laravel composer-php laravel-5

我正在尝试构建我的应用程序,使我的所有模型都在一个专用目录中(在我的案例中分类).我用Laravel app目录创建了目录,并将其添加到我的composer.json文件中.下面是我的composer.json文件的结构:

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "Classified\\": "app/",
        "Classified\\": "app/Classified"
    }
},
Run Code Online (Sandbox Code Playgroud)

然后我在终端中运行composer dump-autoload,但我一直得到"Key Classified \在第29行的./composer.json中重复",当我尝试在浏览器中查看我的应用时,我得到:

致命错误:/home/vagrant/Workspace/codulabproducts/classified/vendor/laravel/framework/src/Illuminate/Container/Container.php上的未捕获异常'ReflectionException',消息'Class App\Http\Kernel is not exists' 736.

我的composer.json文件中的第29行是

"Classified\\": "app/Classified"
Run Code Online (Sandbox Code Playgroud)

我不知道出了什么问题,因为我已经在我的其他项目中执行了这些步骤,一切顺利.

xab*_*buh 8

您可以为名称空间前缀定义多个目录.但在这种情况下,键的值必须是列表而不是字符串(请参阅文档中的第二个示例):

{
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "Classified\\": ["app/", "app/Classified"]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


jed*_*ylo 3

psr-4映射中不能有重复的键。它应该为给定的命名空间定义根文件夹,并且命名空间不能有多个根。

删除Classified\命名空间的映射之一。