Я пришел с небольшой проблемой, которую я пытался понять напрасно... У меня 2 класса. Один из них представляет собой абстрактный документ под названием «SpecificIndividual», а другой — обычный документ под названием «Individual».
Это то, что я хочу сделать: SpecificIndividual имеет некоторые свойства и некоторые методы получения/установки. Индивидуальный наследует SpecificIndividual и имеет свои собственные свойства и методы получения/установки.
Я использовал наследование MappedSuperClass с типом COLLECTION_PER_CLASS.
Моя проблема в том, что когда я использую команду «doctrine:mongodb:generate:documents», она генерирует все методы получения/установки для абстрактного класса (это то, что я хочу), все методы получения/установки для дочернего класса (это также то, что я хочу), НО он дублирует все методы получения/установки абстрактного класса в дочерний класс (это не имеет никакого смысла в наследовании).
Я, вероятно, делаю что-то не так, так как это работало, когда я использовал MySQL и Entities, но с тех пор, как я перешел на 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;
}
}
Я рассчитываю на всех вас, ребята, на помощь! Заранее спасибо.