Symfony 映射错误:“映射相互不一致”和“关联引用了不存在的反向侧字段”
Posted
技术标签:
【中文标题】Symfony 映射错误:“映射相互不一致”和“关联引用了不存在的反向侧字段”【英文标题】:Symfony Mapping Error: "The mappings are inconsistent with each other" & "The association refers to the inverse side field which does not exist" 【发布时间】: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
有一个错字
【参考方案1】:
因为这个注解:
@ORM\ManyToOne(targetEntity="Script", inversedBy="feedback")
您的脚本实体中有错字
private $feebdack;
应该是
private $feedback;
【讨论】:
嗯,我花了很多时间试图解决这个问题,而不是我愿意承认的。非常感谢! 我在创建教义关系时多次遇到这种错误。这通常只是一个小错字问题或忘记声明反向属性。以上是关于Symfony 映射错误:“映射相互不一致”和“关联引用了不存在的反向侧字段”的主要内容,如果未能解决你的问题,请参考以下文章