首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >缺少主键id原则Symfony2的值

缺少主键id原则Symfony2的值
EN

Stack Overflow用户
提问于 2016-02-23 23:13:43
回答 1查看 14.4K关注 0票数 5

我正在致力于交响乐2.8.2理论中两个实体之间的连接。我一直收到“缺少主键id的值”的提示

这里是缺少id的id注释。

代码语言:javascript
运行
复制
 /**
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id;

以下是我的joins:

代码语言:javascript
运行
复制
/**
 * @ORM\OneToOne(targetEntity="FYP\BaseDesignBundle\Entity\SessionDesign", inversedBy="user")
 * @ORM\JoinColumn(name="fcid", referencedColumnName="id")
 */
private $sessionDesign;


/**
 * @ORM\OneToOne(targetEntity="FYP\UserBundle\Entity\User", inversedBy="sessionDesign")
 * @ORM\JoinColumn(name="id", referencedColumnName="fcid")
 */
private $user;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-23 23:32:37

这是来自您的协会的joinColumn名称的错误。

将映射更改为:

代码语言:javascript
运行
复制
/**
 * @ORM\OneToOne(targetEntity="FYP\UserBundle\Entity\User", inversedBy="sessionDesign")
 * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
 */
private $user;

注意:这是默认配置,也可以删除该行,因为它是无用的。

编辑

我没有指出真正的问题,但我是对的。

之所以出现此错误,是因为您试图使用非主键的列作为joinColumnreferencedColumnName

以下内容:

代码语言:javascript
运行
复制
* @ORM\JoinColumn(name="id", referencedColumnName="fcid")

应该是:

代码语言:javascript
运行
复制
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")

来自the owner's answer上的this similar question (与完全相同的错误相关):

不能使用指向非主键的联接列。原理会认为这些是主键,并使用数据创建延迟加载代理,这可能会导致意想不到的结果。由于性能原因,settings不能在运行时验证此设置的正确性,只能通过validate Schema命令验证。Is it possible to reference a column other than 'id' for a JoinColumn?

的类似问题

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35581176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档