我有一个"优惠" class(MapperSuperclass)和另外两个扩展它的类," PrivateOffer"和#34; PublicOffer"。
我遇到的问题是,当我运行" doctrine:generate:entities"命令,两个类" PrivateOffer"和#34; PublicOffer"完全具有与MappedSuperclass相同的属性"提供"类,以及它的getter和setter方法。
如果我删除它们并仅在"提供" class," doctrine:schema:update"运作良好,但我需要运行" doctrine:generate:entities"再次如此,它每次我的扩展课程都会毁了。
为什么" doctrine:generate:entities"如果它们扩展了MappedSupperclass,那么复制这两个类中的所有属性和setter / getter方法?
谢谢大家:)
OfferClass:
namespace Pro\JobBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Offer
*
* @ORM\MappedSuperclass()
*/
class Offer
{
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
*/
protected $name;
....more properties...
}
PrivateOfferClass:
<?php
namespace Pro\JobBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* PrivateOffer
*
* @ORM\Table(name="private_offer")
* @ORM\Entity
*/
class PrivateOffer extends Offer
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
}
PublicOfferClass:
<?php
namespace Pro\JobBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* PublicOffer
*
* @ORM\Table(name="public_offer")
* @ORM\Entity
*/
class PublicOffer extends Offer
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
}
答案 0 :(得分:11)
这是Doctrine中已知的行为(不是说:bug):在您的方案中,所有实体属性必须是私有。只能通过吸气剂访问它们。