我收到通知:未定义索引:joinTable

Posted

技术标签:

【中文标题】我收到通知:未定义索引:joinTable【英文标题】:I am getting Notice: Undefined index: joinTable 【发布时间】:2018-07-24 19:03:18 【问题描述】:

我正在使用几个 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 功能以避免此索引”将解决链接问题,但它不会解决我的问题,因为我需要在现有系统的约束下工作。

【问题讨论】:

PHP: "Notice: Undefined variable", "Notice: Undefined index", and "Notice: Undefined offset"的可能重复 我认为这是一个 Symfony/Doctrine 问题,而不是像您链接的那个一般 PHP 问题,并且与 Symfony/Doctrine 发送此通知的原因特别相关的答案将有助于其他用户。也就是说,我感谢您的快速响应。 确实如此,但我无法帮助您使用 Symfony。祝你有美好的一天:) 您能否在 Synonym.php 类的 @ORM\ManyToOne 下为字段 page 定义 @ORM\JoinTable(name="page_id", , referencedColumnName="id")。你的错误还有吗? 这条命令php bin/console doctrine:schema:validate的输出是什么? 【参考方案1】:

你有它... ;)

你应该定义@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;

你的错误还有吗?

【讨论】:

以上是关于我收到通知:未定义索引:joinTable的主要内容,如果未能解决你的问题,请参考以下文章

想要在 mysql 查询中求和时收到“未定义索引”通知[重复]

Joomla 3.5.1 - PHP 注意:未定义索引:doTask

注意:未定义索引:[重复]中的图像

IOS Swift-收到推送通知时应用程序未打开特定选定的标签栏控制器索引

注意:未定义索引产品名称

注意:未定义索引:Drupal\Core\Routing\ 中的路径