2016-01-21 45 views
4

我試圖生成getter和setter在Symfony的3.0.1Symfony3錯誤命名空間中不包含任何映射實體

當我運行命令

php bin/console doctrine:generate:entities VendorName/MyBundle/EntityName 

我有錯誤

Namespace "VendorName\MyBundle\EntityName" does not contain any mapped entities. 

哪裏是錯誤的?

編輯-1:首先生成實體與YAML格式

編輯-2:我試圖產生用於供應商束

此外,我嘗試用命令PHP倉/控制檯getter和setter學說:生成:實體VendorNameMyBundle:實體名稱並有另一個錯誤:

Can't find base path for "VendorName\MyBundle\Entity\EntityName" (path: "/home/site/vendor/vendorname/mybundle/Entity", destination: "/home/site/vendor/vendorname/mybundle/Entity"). 
+0

你第一次用註釋映射生成一個實體類? (或者YAML,XML映射等等)。這裏的[文檔](http://symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html)。 – Federkun

+1

首先使用YAML格式生成實體 – Neokortex

+0

實體類的路徑是什麼? 'MyBundle \實體\ EntityName'? 'VendorNameMyBundle'是一個有效的註冊包名嗎? – Federkun

回答

2

由於John Pancoast在他answer指出了一個不同的問題:

Doctrine does not support PSR-4 when doing anything with code generation. It has to do with how they map class namespaces to filesystem paths and how PSR-4 allows class/namespace paths that don't directly map to the filesystem.

https://github.com/doctrine/DoctrineBundle/issues/282

爲了澄清究竟什麼是需要解決的錯誤信息;您必須編輯您的軟件包的composer.json文件,並更改軟件包的文件夾結構。

composer.json變化psr-4psr-0

"autoload": { 
    "psr-4": { "Acme\\Bundle\\AwesomeBundle\\": "" } 
}, 

到:

"autoload": { 
    "psr-0": { "Acme\\Bundle\\AwesomeBundle\\": "" } 
}, 

更改包的文件夾結構從:

vendor 
+--acme 
    +--awesome-bundle 
     |--Controller 
     |--Entity 

到:

vendor 
+--acme 
    +--awesome-bundle 
     +--Acme 
      +--Bundle 
       +--AwesomeBundle 
        |--Controller 
        |--Entity 

以下命令將不再拋出異常:

bin/console doctrine:generate:entities AwesomeBundle 
+0

謝謝.. !!!!!! –

0

你有命令錯誤,你想生成實體,而是你對一個實體提供的類名。請嘗試以下的所有實體:

php bin/console doctrine:generate:entities VendorName/MyBundle 

,或者如果你只想要一個實體:

php bin/console doctrine:generate:entity VendorName/MyBundle/EntityName 
-1

Symfony的3.22與SRC /的appbundle /實體/用戶。PHP

,如果你使用ORM添加新的領域

**/** 
* @ORM\Column(name="last_login", type="datetimetz") 
*/ 
private $lastLogin;** 

只使用

使用PHP斌/控制檯學說:生成:實體的appbundle

它會檢查所有的實體 - [R並更新獲取者和設置者

然後使用

PHP斌/控制檯學說:架構:更新更新您的數據庫

使用

PHP斌/控制檯學說:架構:更新--force在PROD環境

相關問題