Jer*_*emy 4 php mysql symfony doctrine-orm
我正在研究两个实体之间关于交响乐2.8.2的学说.我一直收到"缺少主键id的值"
下面是缺少id的id注释.
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
Run Code Online (Sandbox Code Playgroud)
这是我的加入:
/**
* @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;
Run Code Online (Sandbox Code Playgroud)
这joinColumn是你的协会名称的错误.
将映射更改为:
/**
* @ORM\OneToOne(targetEntity="FYP\UserBundle\Entity\User", inversedBy="sessionDesign")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
private $user;
Run Code Online (Sandbox Code Playgroud)
注意:这是默认配置,也可以删除该行,因为它没用.
编辑
没有指出真正的问题我是对的.
您收到此错误是因为您尝试使用不是主键的列作为referencedColumnName您的主键joinColumn
下列:
* @ORM\JoinColumn(name="id", referencedColumnName="fcid")
Run Code Online (Sandbox Code Playgroud)
应该:
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
Run Code Online (Sandbox Code Playgroud)
无法使用指向非主键的连接列.Doctrine会认为这些是主键并使用数据创建延迟加载代理,这可能会导致意外结果.出于性能原因,Doctrine可以在运行时不验证此设置的正确性,而只能通过Validate Schema命令验证.
| 归档时间: |
|
| 查看次数: |
9165 次 |
| 最近记录: |