我正在尝试使用doctrine 2实现三级继承模型,如下例所示:
1级实体:
/**
* @ORM\Entity
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="discr", type="string", length=50)
* @ORM\DiscriminatorMap({"Factura"="Factura", "NotaEntrega"="NotaEntrega", "Giro"="Giro", "FacturaNormal"="FacturaNormal", "FacturaPeriodica"="FacturaPeriodica"})
*/
class Cobro { ... }
第2级实体:
/**
* @ORM\Entity
*/
class Factura extends Cobro { ... }
3级实体:
/**
* @ORM\Entity
*/
class FacturaNormal extends Factura { ... }
但是当我尝试为实体“Factura”创建getter和setter时......
php app/console doctrine:generate:entities MiAlarma/FacturaBundle/Entity/Factura
我收到以下错误:
Fatal error: Call to undefined method Doctrine\ORM\Mapping\MappingException::nameIsMandatoryForDiscriminatorColumns() in /var/www/sf5/vendor/doctrine/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php on line 1944
我做错了什么?
答案 0 :(得分:0)
当我错过name=""
注释中的@ORM\DiscriminatorColumn
部分时出现此错误。我看不出你的任何问题,但这似乎是Doctrine所抱怨的。
尝试使用var_dump()
中的ClassMetadataInfo::setDiscrimiatorColumn
来查看注释中传递的内容,以查看错误。