解析 [DoctrineORMORMException] ManyToOne 列名称“id”引用的注释与用户的关



类注释

/**
 * @var CaerusAppBundleEntityUsers
 *
 * @ORMManyToOne(targetEntity="User" , inversedBy="comment")
 * 
 * @ORMJoinColumn(name="user_id", referencedColumnName="user_id")
 * 
 */
protected $user;

类用户

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

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

[Doctrine\ORM\ORMException] ManyToOne 列名称id引用的注释与用户的关系不存在

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

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

/**
 * @var CaerusAppBundleEntityUsers
 *
 * @ORMManyToOne(targetEntity="User" , inversedBy="comment")
 * @ORMJoinColumn(name="user_id", referencedColumnName="id")
 * 
 */
protected $user;

附言

  • 我还将OneToMany属性命名为"注释",因为它包含许多Comment对象。
  • "@var \Caerus\AppBundle\Entity\Users"应该是 ...\User,因为你的类被称为 User

运行php bin/console doctrine:schema:validate将使您更深入地了解错误条件中涉及哪些实体类和列。

您也可以使用此代码:

/**
* @var CaerusAppBundleEntityUsers
*
* @ORMManyToOne(targetEntity="User" , inversedBy="comment")
*
* @ORMJoinColumn(nullable=true , referencedColumnName="variable_id_of_comment")
*/
protected $user;

相关内容

  • 没有找到相关文章

最新更新