【问题标题】:Symfony 2.6 mapping errors OneToMany inverse side fieldSymfony 2.6 映射错误 OneToMany 反向字段
【发布时间】:2015-03-17 14:26:48
【问题描述】:

我正在寻找我的映射出现错误的原因,但我真的不明白。我在堆栈中添加了一些问题,但它对我不起作用。

错误: 关联 CTC\Bundle\UserBundle\Entity\Address#addressType 指的是不存在的反边字段 CTC\Bundle\AdminBundle\Entity\AddressType#addresses。

其次,我也想知道为什么当我使用“doctrine:generate:entities ...”时,它没有给我地址的 getter 和 setter,但对于 addressType 却很好。

这是我的映射代码:

类地址类型

...

/*
     * @var array
     * 
     * @ORM\OneToMany(targetEntity="CTC\Bundle\UserBundle\Entity\Address", mappedBy="addressType")
     *
     */
    private $addresses;


    public function __construct()
    {
        $this->addresses = new ArrayCollection();
    }
...

班级地址

/**
     * @ORM\ManyToOne(targetEntity="CTC\Bundle\AdminBundle\Entity\AddressType", inversedBy="addresses")
     * @ORM\JoinColumn(name="addressTypeID", referencedColumnName="AddressTypeID")
     */
    private $addressType;

任何帮助将不胜感激。

【问题讨论】:

    标签: doctrine-orm mapping symfony-2.6


    【解决方案1】:

    好吧,这只是 * 的问题!

    在 AddressType 类中,我改变了这个

    /*
    * @var array
    * 
    * @ORM\OneToMany(targetEntity="CTC\Bundle\UserBundle\Entity\Address", mappedBy="addressType")
    *
    */
    private $addresses;
    

    由此

    我只是在“/”之后添加一个“”,一切正常!

    /**
    * @var array
    * 
    * @ORM\OneToMany(targetEntity="CTC\Bundle\UserBundle\Entity\Address", mappedBy="addressType")
    *
    */
    private $addresses;
    

    【讨论】:

      【解决方案2】:
          /*
               * @var array
               * 
               * @ORM\OneToMany(targetEntity="CTC\Bundle\UserBundle\Entity\Address", mappedBy="addressType", cascade={"persist","remove"})
               *
               */
              private $addresses;
      
      
              public function __construct()
              {
                  $this->addresses = new ArrayCollection();
              }
      
      
      /**
           * @ORM\ManyToOne(targetEntity="CTC\Bundle\AdminBundle\Entity\AddressType", inversedBy="addresses")
           * @ORM\JoinColumn(name="addressTypeID", referencedColumnName="id")
           */
          private $addressType;
      

      我认为你在 addressType 实体中的 Id 属性名称不是 AddressTypeID ,我不能写提交来问这个:(我希望这个工作电话你

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多