【问题标题】:Symfony Mapping Error: "The mappings are inconsistent with each other" & "The association refers to the inverse side field which does not exist"Symfony 映射错误:“映射相互不一致”和“关联引用了不存在的反向侧字段”
【发布时间】:2017-11-09 15:15:45
【问题描述】:

我有两个实体映射如下:

class ScriptFeedback
{
    /**
     * @ORM\ManyToOne(targetEntity="Script", inversedBy="feedback")
     */
    private $script;

    ...
}

class Script
{
    /**
     * @ORM\OneToMany(targetEntity="ScriptFeedback", mappedBy="script")
     */
    private $feebdack;

    ...
}

这可行 - 我可以从中生成迁移,并且网站完全按照我的意愿运行,正确链接我的脚本及其在数据库中的反馈。

但是 - 当我运行 doctrine:schema:validate 时,我得到:

[映射] FAIL - 实体类 'AppBundle\Entity\Script' 映射 是无效的: * 映射 AppBundle\Entity\Script#feebdack 和 AppBundle\Entity\ScriptFeedback#script 各自不一致 其他。

[映射] FAIL - 实体类 'AppBundle\Entity\ScriptFeedback' 映射无效: * 关联 AppBundle\Entity\ScriptFeedback#script 指的是反侧字段 AppBundle\Entity\Script#feedback 不 存在。

有什么想法吗?

【问题讨论】:

  • 你在feebdack有一个错字

标签: php symfony doctrine-orm symfony-3.3


【解决方案1】:

因为这个注解:

@ORM\ManyToOne(targetEntity="Script", inversedBy="feedback")

您的脚本实体中有错字

private $feebdack;

应该是

private $feedback;

【讨论】:

  • 嗯,我花了很多时间试图解决这个问题,而不是我愿意承认的。非常感谢!
  • 我在创建教义关系时多次遇到这种错误。这通常只是一个小错字问题或忘记声明反向属性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-02
  • 1970-01-01
相关资源
最近更新 更多