2017-08-05 60 views
1

我希望我的问题能够清楚。
在我的symfony2项目中,我遵循this教程来制作一个表单,我可以在其中按链接添加尽可能多的“导演”,因此我试图通过表单集合来完成。
一切工作正常,除了多对一的领域,总是得到“空值”,而不是“ID”。
这是我所做的。在我所附加在收集表单外键始终为空

Soumission实体 “导演” 链接

.... 
    /** 
* @ORM\OneToMany(targetEntity="tuto\BackofficeBundle\Entity\Auteur", 
    mappedBy="soumission", cascade={"persist"}) 
*/ 
protected $auteurs; 
..... 
/** 
* @param Collection $auteurs 
* @return $this 
*/ 

public function setAuteurs(Collection $auteurs) 
{ 
    $this->auteurs = $auteurs; 
    return $this; 
} 

/** 
* Add auteur 
* 
* @param \tuto\BackofficeBundle\Entity\Auteur $auteur 
* @return Soumission 
*/ 
public function addAuteur(Auteur $auteur) 
{ 
    if (! $this->auteurs->contains($auteur)) { 
     $auteur->setSoumission($this); // this should set the "soumission- 
              id" field 
     $this->auteurs->add($auteur); 
    } 
    return $this->auteurs; 
    } 
    public function removeAuteur(Auteur $auteur) 
    { 
    if ($this->auteurs->contains($auteur)) { 
     $this->auteurs->removeElement($auteur); 
    } 
    return $this->auteurs; 
    } 
    /** 
* @return mixed 
*/ 
    public function getAuteurs() 
    { 
    return $this->auteurs; 
    } 

这是导演的实体:

/** 
* @ORM\ManyToOne(targetEntity="Soumission", inversedBy="auteur") 
* @ORM\JoinColumn(name="soumission_id", referencedColumnName="id") 
*/ 
protected $Soumission; 
/** 
* @param $soumission 
* @return $this 
*/ 
public function setSoumission(Soumission $soumission) 
{ 
    $this->soumission = $soumission; 
    return $this;} 
/** 
* @return mixed 
*/ 
public function getSoumission() 
{ 
    return $this->soumission; 
} 

public function __toString() { 
    return $this->Soumission; 
} 

the result should be like the second line and not null value

+0

这两个实体是在同一个捆绑? –

+0

你在映射中有一些错误 –

+0

是的两个实体在同一个包 – sabrina

回答

-1

尝试这样做:

/** 
    * @ORM\OneToMany(targetEntity="Auteur",mappedBy="soumission", cascade={"persist"}) 
    */ 
    protected $auteurs; 
/** 
* Add auteurs 
* @return FormationMsk 
*/ 
public function addAuteur(\tuto\BackofficeBundle\Entity\Auteur $auteurs) 
{ 
    $this->auteurs[] = $auteurs; 

    return $this; 
} 

/** 
* Remove auteurs 
*/ 
public function removeAuteur(\tuto\BackofficeBundle\Entity\Auteur $auteurs) 
{ 
    $this->auteurs->removeElement($auteurs); 
} 

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

public function __construct() 
{ 

    $this-auteurs = new \Doctrine\Common\Collections\ArrayCollection(); 

    } 

和导演实体:

/** 
* @ORM\ManyToOne(targetEntity="Soumission", inversedBy="auteurs") 
* @ORM\JoinColumn(name="soumission_id", referencedColumnName="id") 
*/ 
protected $soumission; 
+0

它没有工作 什么都没有改变 – sabrina