首页 文章

Symfony2配置错误的实体

提问于
浏览
0

我收到两条关于Symfony 2项目中配置错误的实体的警告 . 它在开发环境中运行良好,但 生产环境 环境无法启动,我怀疑这些配置错误的实体可能是原因 .

两个实体的错误相同,所以我只将其中一个作为例子 .


BizTV\MediaManagementBundle\Entity\QrImage:

字段BizTV \ MediaManagementBundle \ Entity \ QrImage#visits位于双向关系的反面,但目标实体BizTV \ MediaManagementBundle \ Entity \ QrVisit#QrImage上指定的mappedBy关联不包含所需的'inversedBy =“访问”属性 .

QrVisit entity:

class QrVisit 
{

...

/**
* @var object BizTV\MediaManagementBundle\Entity\QrImage
*  
* @ORM\ManyToOne(targetEntity="BizTV\MediaManagementBundle\Entity\QrImage")
* @ORM\JoinColumn(name="QrImage", referencedColumnName="id")
*/
protected $QrImage;

QrImage entity:

class QrImage
{

...

/**
 * @ORM\OneToMany(targetEntity="BizTV\MediaManagementBundle\Entity\QrVisit", mappedBy="QrImage")
 */
private $visits;

我更改 QrImage 以包含 inversedBy ,如下所示,但我可能做错了,因为我仍然收到错误消息,尽管是新消息 .

/**
 * @ORM\OneToMany(targetEntity="BizTV\MediaManagementBundle\Entity\QrVisit", mappedBy="QrImage", inversedBy="visits")
 */
private $visits;

但这会产生错误:

[创建错误]在属性BizTV \ UserBundle \ Entity \ UserGroup :: $ company上声明的注释@ORM \ JoinColumn没有名为“inversedBy”的属性 . 可用属性:name,referencedColumnName,unique,nullable,onDelete,columnDefinition,fieldName

1 回答

  • 0

    如果要 Build 双向ManyToOne / OneToMany关系,则必须将 mappedBy 属性放在OneToMany端,如:

    @ORM\OneToMany(targetEntity="BizTV\MediaManagementBundle\Entity\QrVisit", mappedBy="QrImage")

    和ManyToOne方面的 inversedBy 类似:

    @ORM\ManyToOne(targetEntity="BizTV\MediaManagementBundle\Entity\QrImage", inversedBy="visits")

    这就是你需要的一切 . 供您参考,请查看Doctrine doc

    您获得的错误是指不同的实体(UserGroup),但您可以以相同的方式检查它们 .

相关问题