我收到通知:未定义的索引:joinTable
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',
))
...当我尝试加载页面管理屏幕时,出现此错误:
Notice: Undefined index: joinTable
所以我的问题是:我需要添加什么才能让 Symfony 对这种关系感到满意?
编辑 #1: 不要问我为什么用 "equivalents" 而不是 "synonyms." 这是一个漫长而奇怪的故事,不值得一读进入这里。
编辑 #2: 对于它的价值,我认为这不是一个重复的问题,因为我正在寻找一种在现有的环境中开发的方法供应商库。例如,"edit the core Doctrine functionality to avoid this index" 可以解决链接的问题,但不能解决我的问题,因为我需要在现有系统的约束下工作。
给你了...;)
你应该定义@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;
你的错误还有吗?
我正在使用一些 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',
))
...当我尝试加载页面管理屏幕时,出现此错误:
Notice: Undefined index: joinTable
所以我的问题是:我需要添加什么才能让 Symfony 对这种关系感到满意?
编辑 #1: 不要问我为什么用 "equivalents" 而不是 "synonyms." 这是一个漫长而奇怪的故事,不值得一读进入这里。
编辑 #2: 对于它的价值,我认为这不是一个重复的问题,因为我正在寻找一种在现有的环境中开发的方法供应商库。例如,"edit the core Doctrine functionality to avoid this index" 可以解决链接的问题,但不能解决我的问题,因为我需要在现有系统的约束下工作。
给你了...;)
你应该定义@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;
你的错误还有吗?