解析[Doctrine \ ORM \ ORMException]从Comment到User的关系引用的ManyToOne列名`id`不存在

时间:2014-01-06 02:00:03

标签: php symfony doctrine-orm

课堂评论

/**
 * @var \Caerus\AppBundle\Entity\Users
 *
 * @ORM\ManyToOne(targetEntity="User" , inversedBy="comment")
 * 
 * @ORM\JoinColumn(name="user_id", referencedColumnName="user_id")
 * 
 */
protected $user;

班级用户

/**
* @var mixed
*
* @ORM\OneToMany(targetEntity="Comment", mappedBy="user")
*/
protected $comment;

基本上很简单。我需要注释类有一个user_id字段,它是用户类中原始user_id字段的直接副本。 错误如下:

  

[Doctrine \ ORM \ ORMException]从Comment to User关系引用的ManyToOne列名id不存在

为什么它仍然存在并不存在,我该如何解决?

2 个答案:

答案 0 :(得分:0)

引用列名应该是User类的“id”属性。

/**
 * @var \Caerus\AppBundle\Entity\Users
 *
 * @ORM\ManyToOne(targetEntity="User" , inversedBy="comment")
 * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
 * 
 */
protected $user;

P.S。

  • 我还将OneToMany属性命名为“comments”,因为它包含许多Comment对象。
  • “@ var \ Caerus \ AppBundle \ Entity \ Users”应为... \ User,因为您的班级称为用户

答案 1 :(得分:0)

您也可以使用以下代码:

/**
* @var \Caerus\AppBundle\Entity\Users
*
* @ORM\ManyToOne(targetEntity="User" , inversedBy="comment")
*
* @ORM\JoinColumn(nullable=true , referencedColumnName="variable_id_of_comment")
*/

protected $user;