2013-07-26 123 views
0

我正在使用doctrine:generate:entity命令來生成實體。我想用​​(string(32)),而不是作爲integer ID類型,但是當我指定它就像--fields選項id:string(32)我獲得以下錯誤:如何在'doctrine:generate:entity'命令中指定id選項?

[Doctrine\ORM\Mapping\MappingException] 
Duplicate definition of column 'id' on entity 'Acme\DemoBundle\Entity\Test' in a field or discriminator column mapping. 

我應該怎麼做,以得到它的工作?

@answer: 作爲@loicfavory在他的答案評論中寫道唯一的辦法就是延長Sensio\Bundle\GeneratorBundle\Generator\DoctrineEntityGenerator類,其中id選項手動設置。

回答

1

ID是通過用整數類型的DoctrineEntityGenerator自動生成。 我認爲如果您使用--fields選項指定它,它會重複創建該字段。

這就是你得到的錯誤。

你嘗試手動更改類型的實體類,命令後創建它?

+0

是的,我知道id是自動生成的,我正在尋找一種方法來重新聲明它。當然,我可以在實體類中更改id類型,但我真的想要避免它... – zelazowy

+1

我不認爲你可以改變它,該字段在Sensio \ Bundle \ GeneratorBundle \ Generator \ DoctrineEntityGenerator中設置爲manualy。也許你應該開發你自己的發電機。我通過擴展我需要的類來完成CRUD生成器。 – loicfavory

+0

是的,我在一分鐘前發現它...似乎唯一的方法就是您所建議的。謝謝你的幫助。 – zelazowy