2 回答

TA貢獻1860條經驗 獲得超9個贊
讓我們閱讀有關此的 Doctrine 文檔:https ://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/inheritance-mapping.html#inheritance-mapping
映射的超類是一個抽象或具體的類,它為其子類提供持久的實體狀態和映射信息,但它本身不是實體。通常,這種映射超類的目的是定義多個實體類共有的狀態和映射信息。
...
映射的超類不能是實體,它不是可查詢的,并且由映射的超類定義的持久關系必須是單向的(僅具有擁有方)。這意味著在映射的超類上根本不可能進行一對多關聯。
根據這個:
MappedSuperclass 不能是實體
不能有一對多關系 - 所以如果你將 ManyToOne 定義為同一個類,那么它也會在同一個類上創建 OneToMany - 正如你在上面所讀到的,這是被禁止的。

TA貢獻1821條經驗 獲得超5個贊
出于某種原因,僅更改 BaseTest 中的完整實體路徑解決了引發異常的應用程序并且它可以工作,如果有人會遇到同樣的問題,請嘗試更改
/**
* @ORM\ManyToOne(targetEntity="Ziebura\CMSBundle\Entity\Test")
*/
protected $parent;
public function getParent()
{
return $this->parent;
}
public function setParent($parent)
{
$this->parent = $parent;
}
至
/**
* @ORM\ManyToOne(targetEntity="Test")
*/
protected $parent;
public function getParent()
{
return $this->parent;
}
public function setParent($parent)
{
$this->parent = $parent;
}
如果有人知道為什么必須這樣,我將非常感謝對我的回答發表評論。
- 2 回答
- 0 關注
- 151 瀏覽
添加回答
舉報