我希望我的问题可以清楚
在我的symfony2项目中,我正在按照this教程创建一个表单,我可以在其中按下链接以添加用户想要的“auteur”,所以我尝试使用表单集合。
一切正常,除了多对一的字段总是得到“空”值而不是“id”
这就是我所做的。
我在其中添加“auteur”链接的投放实体
....
/**
* @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;
}
这是auteur实体:
/**
* @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 :(得分:-2)
尝试这样做:
/**
* @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();
}
并且为auteur实体:
/**
* @ORM\ManyToOne(targetEntity="Soumission", inversedBy="auteurs")
* @ORM\JoinColumn(name="soumission_id", referencedColumnName="id")
*/
protected $soumission;