2016-01-13 90 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"] 
     } 
    } 
}