我遇到了一个我试图理解但徒劳无功的小问题……我有 2 节课。一个是称为“SpecificIndividual”的抽象文档,另一个是称为“Individual”的常规文档。
这就是我想要做的:SpecificIndividual 有一些属性和一些 getter/setter 方法。Individual 继承 SpecificIndividual 并拥有自己的属性和 getters/setters 方法。
我使用具有 COLLECTION_PER_CLASS 类型的 MappedSuperClass 继承。
我的问题是,当我使用“doctrine:mongodb:generate:documents”命令时,它会为抽象类生成所有 getters/setters 方法(这是我想要的),为子类生成所有 getters/setters 方法(这也是我想要什么)但是它将所有抽象类的getter/setter方法复制到子类中(这在继承中根本没有意义)。
我可能做错了什么,因为它在我使用 MySQL 和实体时有效,但是自从我搬到 MongoDB 之后,我找不到正确的方法来做到这一点。
这是我的课程:首先,SpecificIndividual:
namespace SpecificBundle\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
use Doctrine\Common\Collections\ArrayCollection;
/**
* SpecificIndividual
*
* @MongoDB\Document
* @MongoDB\InheritanceType("COLLECTION_PER_CLASS")
*/
abstract class Individual
{
/**
* @MongoDB\Id
*/
protected $individual_id;
/**
* @MongoDB\Boolean
*/
protected $chiped;
/**
* Get individualId
*
* @return id $individualId
*/
public function getIndividualId()
{
return $this->individual_id;
}
/**
* Set chiped
*
* @param boolean $chiped
* @return self
*/
public function setChiped($chiped)
{
$this->chiped = $chiped;
return $this;
}
/**
* Get chiped
*
* @return boolean $chiped
*/
public function getChiped()
{
return $this->chiped;
}
}
和子类 Individual :
namespace ChildBundle\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
use SpecificBundle\Document\Individual as SpecificIndividual;
/**
* Individual
*
* @MongoDB\Document(collection="individuals")
*/
class Individual extends SpecificIndividual
{
/**
* @MongoDB\String
*/
protected $someString;
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
}
/**
* Set someString
*
* @param String $someString
* @return self
*/
public function setSomeString(String $someString)
{
$this->someString = $someString;
return $this;
}
/**
* Get someString
*
* @return String $someString
*/
public function getSomeString()
{
return $this->someString;
}
}
我指望你们所有人提供帮助!提前致谢。