Symfony 3.4 Doctrine:关联是指反面信息,它不被定义为关联

时间:2018-02-12 01:53:47

标签: mysql symfony doctrine-orm doctrine symfony-3.4

实体\识别

/**
 * @ORM\Entity
 * @ORM\Table(name="c_rcgntn")
 */
class Recognition {
    /**
     * @ORM\Id
     * @ORM\Column(type="integer", name="id")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\ManyToOne(targetEntity="AppBundle\Entity\RecognitionType", inversedBy="id")
     * @ORM\JoinColumn(name="fk_recogtype_id", referencedColumnName="id")
     */
    protected $recogType;

实体\ RecognitionType

/**
 * @ORM\Entity
 * @ORM\Table(name="c_rcgntn_type")
 */
class RecognitionType {
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     * @ORM\OneToMany(targetEntity="AppBundle\Entity\Recognition",mappedBy="recogType")
     */
    protected $id;

在我的开发环境中运行时,我看到错误显示在我的探查器中。这不是一个大问题,因为代码仍然运行并正确返回连接。我只是无法撼动错误。

  

关联实体\识别#recogType是指   反面字段实体\ RecognitionType #id不是   定义为关联。该协会   实体\识别#recogType指的是反面   字段Entity \ RecognitionType #id不存在。

1 个答案:

答案 0 :(得分:0)

您正在混合" id "的定义? RecognitionType 中的字段与“识别实体”的关系。从 RecognitionType 删除行:

@ORM\OneToMany(targetEntity="AppBundle\Entity\Recognition",mappedBy="recogType")

对于单向关系来说应该足够了, recogType 字段的定义就足够了。

如果您还要在RecognitionType中添加关系,请向其添加新字段:

/**
 * ORM\OneToMany(targetEntity="AppBundle\Entity\Recognition", mappedBy="recogType")
 */
protected $recognition;

请注意,在上述定义之后不需要更新架构。