Lui*_*ral 5 doctrine mappedsuperclass symfony
我有一个"Offer"类(MapperSuperclass)和另外两个扩展它的类,"PrivateOffer"和"PublicOffer".
我遇到的问题是,当我运行"doctrine:generate:entities"命令时,"PrivateOffer"和"PublicOffer"这两个类都填充了与MappedSuperclass"Offer"类相同的属性,以及它的getter和setter方法.
如果我删除它们并仅在"Offer"类中使用它们,那么"doctrine:schema:update"可以正常工作,但是我需要再次运行"doctrine:generate:entities",因此每次扩展类都会丢失它.
为什么"doctrine:generate:entities"会复制两个类中的所有属性和setter/getter方法,如果它们扩展了MappedSupperclass?
谢谢你们 :)
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...
}
Run Code Online (Sandbox Code Playgroud)
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;
}
}
Run Code Online (Sandbox Code Playgroud)
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;
}
}
Run Code Online (Sandbox Code Playgroud)