我正在尝试构建我的应用程序,以便我的所有模型都在一个专用目录中(在我的案例中分类)。我用Laravel app目录创建了目录,并将其添加到我的composer.json文件中。下面是我的composer.json文件的结构:
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"Classified\\": "app/",
"Classified\\": "app/Classified"
}
},
然后我在我的终端中运行composer dump-autoload但是我继续得到“Key Classified \”在第29行的./composer.json中是重复的 “当我尝试在浏览器中查看我的应用时,我得到了:
致命错误:/ home / vagrant / Workspace / codulabproducts / classified / vendor / laravel / framework / src / Illuminate / Container / Container中未捕获的异常'ReflectionException',消息'Class App \ Http \ Kernel不存在'。 php在736行。
我的composer.json文件中的第29行是
"Classified\\": "app/Classified"
我不知道出了什么问题,因为我已经在其他项目中执行了这些步骤,一切顺利。
答案 0 :(得分:8)
您可以为名称空间前缀定义多个目录。但在这种情况下,键的值必须是列表而不是字符串(请参阅the second example in the documentation):
{
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"Classified\\": ["app/", "app/Classified"]
}
}
}
答案 1 :(得分:3)
您的 psr-4 映射中不能包含重复的密钥。它应该定义给定命名空间的根文件夹,命名空间不能有多个根。
删除分类\ 命名空间的其中一个映射。