[英]I am getting Notice: Undefined index: joinTable
我正在使用一些Sonata捆綁包在Symfony 2.8應用程序上構建新功能。
我的Page.orm.xml文件包含以下內容:
<one-to-many target-entity="AppBundle\Entity\Synonym" field="equivalents" mapped-by="page">
<cascade>
<cascade-all/>
</cascade>
</one-to-many>
...,而我的Synonym.php實體定義包含以下內容:
/**
* @var \Application\Sonata\PageBundle\Entity\Page
* @ORM\ManyToOne(targetEntity="Application\Sonata\PageBundle\Entity\Page", inversedBy="equivalents", cascade={"persist"})
*/
private $page;
...,而我的PageAdmin.php文件包含以下內容:
->add('equivalents', 'sonata_type_collection', array(
'label' => "Equivalents",
'cascade_validation' => true,
'required' => false,
), array(
'edit' => 'inline',
'inline' => 'table',
'targetEntity' => 'AppBundle\Entity\Synonym',
'admin_code' => 'app.admin.synonym',
))
...並且當我嘗試加載頁面管理屏幕時,出現此錯誤:
注意:未定義的索引:joinTable
所以我的問題是: 為了使Symfony對這種關系感到滿意,我需要添加什么?
編輯#1:不要問為什么我使用“等效項”而不是“同義詞”。 這是一個漫長而奇怪的故事,不值得在這里講到。
編輯#2:關於它的價值,我會認為這不是重復的問題,因為我正在尋找一種在現有供應商庫的上下文中進行開發的方法。 例如,“編輯核心Doctrine功能以避免該索引”將解決鏈接的問題,但並不能解決我的問題,因為我需要在現有系統的約束下進行工作。
你有它... ;)
您應該定義@ORM\\JoinTable
/**
* @var \Application\Sonata\PageBundle\Entity\Page
* @ORM\ManyToOne(targetEntity="Application\Sonata\PageBundle\Entity\Page", inversedBy="equivalents", cascade={"persist"})
* @ORM\JoinTable(name="page_id", referencedColumnName="id")
*/
private $page;
你還有錯誤嗎?
上面來自Preciel的評論包含了針對我的情況的解決方案。
如果他們將其發布為答案,我將很樂意接受該答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.