2016-01-13 92 views
4

我试图以我所有模型将在专用目录(在我的案例中为分类)中的方式构建我的应用。我使用Laravel app目录创建了目录,并将其添加到我的composer.json文件中。下面是我的composer.json文件的结构:密钥在./composer.json中是重复的

"autoload": { 
    "classmap": [ 
     "database" 
    ], 
    "psr-4": { 
     "Classified\\": "app/", 
     "Classified\\": "app/Classified" 
    } 
}, 

然后我在终端上运行的作曲家转储自动加载,但我不断收到“主要分类\是第29行 在./composer.json重复”当我试图在浏览器中查看我的应用程序我得到:

Fatal error: Uncaught exception 'ReflectionException' with message 'Class App\Http\Kernel does not exist' in /home/vagrant/Workspace/codulabproducts/classified/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 736.

第29行中我composer.json文件

"Classified\\": "app/Classified" 

我不知道我做错了,因为我有FOL在我的其他项目中降低了这些步骤,一切进展顺利。

回答

2

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

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

+0

现在我明白了。我改变了第二个映射,一切正常。 – ammezie

6

您可以为命名空间前缀定义多个目录。但在这种情况下,密钥的值必须是列表而不是字符串(请参阅the second example in the documentation):

{ 
    "autoload": { 
     "classmap": [ 
      "database" 
     ], 
     "psr-4": { 
      "Classified\\": ["app/", "app/Classified"] 
     } 
    } 
}