教义/交响乐 - 继承 - 关系



我有两个实体:Individu(个人(和Epoux_se(丈夫( 丈夫扩展个人

class Individu
{
/**
* @var int
*
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORMColumn(name="nom", type="string", length=30)
*/
private $nom;
/**
* @ORMOneToOne(targetEntity="AppBundleEntityIndividu", cascade={"persist"})
* @ORMJoinColumn(name="pere_id", referencedColumnName="id", onDelete="CASCADE")
*/
private $pere;
public function __construct($nom, $prenoms, $sexe)
{
$this->nom = $nom;
$this->prenoms= $prenoms;
$this->sexe = $sexe;
$this->actes = new DoctrineCommonCollectionsArrayCollection();
}

和班丈夫

class Epoux_se extends Individu
{
/**
* @var int
*
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $id;
public function __construct($nom, $prenoms, $sexe, $lieuOrigine, $dateNaissance, $age)
{
parent::__construct($nom, $prenoms, $sexe);
$this->lieuOrigine = $lieuOrigine;
$this->dateNaissance = $dateNaissance;
$this->age = $age;
}

当我导入数据夹具时

新Epoux_se("奥雷尔", ["让-克里斯托夫", "马克"], "M", "圣马洛", "05/08/1722",22(;

我丈夫的构造函数有错误

SQLSTATE[42S22]:找不到列:1054 未知列"pere_id" "字段列表">

执行"插入epoux_se(nom、prenoms、sexe、profession、pere_id、mere_id、lie(时发生异常 Origine, dateNaissance, age( VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?(' with params ["Aurel", "a:2:{i:0;s:15:"让-基督 奥菲\";一:1;s:4:\"Marc\";}", "M", null, null, null, "Saint-Malo", "05/08/1722", 22]:

夹具:

$marie = new Individu("Duhamel", ["Ophelia", "Carmène"], "F"); 
$manager->persist($marie); 
$epoux_se = new Epoux_se("Aurel", ["Jean-Christophe", "Marc"], "M", "Saint-Malo", "05/08/1722", 22); 
$manager->persist($epoux_se); 
$manager->flush(); 

怎么办?谢谢!

我找到了解决方案!有必要在单个实体上方添加以下注释

  • @ORM\继承类型("已加入"(
/**
* Individu
*
* @ORMInheritanceType("JOINED")
*
* @ORMEntity(repositoryClass="AppBundleRepositoryIndividuRepository")
*/
class Individu

将父类属性的可见性更改为受保护。然后更新您的数据库方案。

最新更新