symfony 2多对多的关系

时间:2013-07-17 05:41:13

标签: symfony doctrine

我正在努力实现两个表之间的多对多关系。

这是我的配置:

Mailer\EmpfaengerBundle\Entity\Empfaenger:
  type: entity
  table: empfaenger
  id:
    id:
      type: integer
      generator: { strategy: AUTO }
  fields:
    vorname:
      type: string
      length: 255
      nullable: true
    nachname:
      type: string
      length: 255
      nullable: true
    created_by:
      type: integer
    updated_by:
      type: integer
  manyToMany:
    verteiler:
      targetEntity: Verteiler
      mappedBy: empfaenger

Mailer\EmpfaengerBundle\Entity\Verteiler:
  type: entity
  table: verteiler
  id:
    id:
      type: integer
      generator: { strategy: AUTO }
  fields:
    name:
      type: string
      length: 255
      nullable: true
    created_by:
      type: integer
    updated_by:
      type: integer
  manyToMany:
    empfaenger:
      targetEntity: Empfaenger
      inversedBy: verteiler
      joinTable:
        name: verteiler_sys
        joinColumns:
          verteiler_id:
            referencedColumnName: id
        inverseJoinColumns:
          empfaenger_id:
            referencedColumnName: id

现在,当我尝试编辑条目时,它可以在“verteiler”表中工作,但不能在empfaenger表中工作。 表格显示在“empfaenger”编辑页面中,条目高亮,但当我改变时,它不会保存更改。

我根据学说文档尝试了各种不同的配置,但总是得到相同的结果: - (

两个实体具有完全相同的结构:

/**
     * Add empfaenger
     *
     * @param \Mailer\EmpfaengerBundle\Entity\Empfaenger $empfaenger
     * @return Verteiler
     */
    public function addEmpfaenger(\Mailer\EmpfaengerBundle\Entity\Empfaenger $empfaenger)
    {
        $this->empfaenger[] = $empfaenger;

        return $this;
    }

    /**
     * Remove empfaenger
     *
     * @param \Mailer\EmpfaengerBundle\Entity\Empfaenger $empfaenger
     */
    public function removeEmpfaenger(\Mailer\EmpfaengerBundle\Entity\Empfaenger $empfaenger)
    {
        $this->empfaenger->removeElement($empfaenger);
    }

    /**
     * Get empfaenger
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getEmpfaenger()
    {
        return $this->empfaenger;
    }

and help would be appreciated.

1 个答案:

答案 0 :(得分:0)

好吧,我发现了一个解决方案,万一有人面对这个问题: http://www.youtube.com/watch?v=kPrgoe3Jrjw