我有一个"Offer"类(MapperSuperclass)和另外两个扩展它的类,"PrivateOffer"one_answers"PublicOffer"。
我遇到的问题是,当我运行"条令:生成:实体"命令时,类"PrivateOffer"one_answers"PublicOffer"都充满了与MappedSuperclass"Offer"类相同的属性,以及它的getter和setter方法。
如果我删除它们并只将它们放在"Offer"类中,"条令:模式:更新"会像预期的那样工作,但我需要再次运行"条令:生成:实体",所以每次我的扩展类都会被破坏。
如果"条令:生成:实体"扩展了MappedUpper类,为什么它们会复制这两个类中的所有属性和setter/getter方法?
谢谢大家:)
产品类别:
namespace ProJobBundleEntity;
use DoctrineORMMapping as ORM;
/**
* Offer
*
* @ORMMappedSuperclass()
*/
class Offer
{
/**
* @var string
*
* @ORMColumn(name="name", type="string", length=255)
*/
protected $name;
....more properties...
}
PrivateOfferClass:
<?php
namespace ProJobBundleEntity;
use DoctrineORMMapping as ORM;
/**
* PrivateOffer
*
* @ORMTable(name="private_offer")
* @ORMEntity
*/
class PrivateOffer extends Offer
{
/**
* @var integer
*
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $id;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
}
PublicOfferClass:
<?php
namespace ProJobBundleEntity;
use DoctrineORMMapping as ORM;
/**
* PublicOffer
*
* @ORMTable(name="public_offer")
* @ORMEntity
*/
class PublicOffer extends Offer
{
/**
* @var integer
*
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $id;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
}
这是Doctrine中的一种已知行为(更不用说:bug):在您的场景中,所有实体属性都必须是私有。只有通过getter才能访问它们。