【发布时间】:2018-03-29 04:02:32
【问题描述】:
我收到两个关于 Symfony 2 项目中的错误配置实体的警告。它在开发环境中运行良好,但生产环境无法启动,我怀疑这些错误配置的实体可能是原因。
这两个实体的错误相同,所以我只包括其中一个作为示例。
BizTV\MediaManagementBundle\Entity\QrImage:
字段 BizTV\MediaManagementBundle\Entity\QrImage#visits 位于双向关系的反面,但目标实体 BizTV\MediaManagementBundle\Entity\QrVisit#QrImage 上指定的 mappedBy 关联不包含所需的'inversedBy="visits"' 属性。
QrVisit 实体:
class QrVisit
{
...
/**
* @var object BizTV\MediaManagementBundle\Entity\QrImage
*
* @ORM\ManyToOne(targetEntity="BizTV\MediaManagementBundle\Entity\QrImage")
* @ORM\JoinColumn(name="QrImage", referencedColumnName="id")
*/
protected $QrImage;
QrImage 实体:
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
【问题讨论】:
-
你需要什么?单向还是双向关系?
-
QrImage 可以有多个 QrVisit,但每个 QrVisit 只有一个 QrImage。