我正在致力于交响乐2.8.2理论中两个实体之间的连接。我一直收到“缺少主键id的值”的提示
这里是缺少id的id注释。
 /**
 * @ORM\Id
 * @ORM\Column(type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id;以下是我的joins:
/**
 * @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;发布于 2016-02-23 23:32:37
这是来自您的协会的joinColumn名称的错误。
将映射更改为:
/**
 * @ORM\OneToOne(targetEntity="FYP\UserBundle\Entity\User", inversedBy="sessionDesign")
 * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
 */
private $user;注意:这是默认配置,也可以删除该行,因为它是无用的。
编辑
我没有指出真正的问题,但我是对的。
之所以出现此错误,是因为您试图使用非主键的列作为joinColumn的referencedColumnName
以下内容:
* @ORM\JoinColumn(name="id", referencedColumnName="fcid")应该是:
* @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?
的类似问题
https://stackoverflow.com/questions/35581176
复制相似问题