我的问题:我想知道是否可以在表单构建器中嵌入类型实体的集合。
我有两个实体:一个Partitions
实体,它有很多Genrepartition
个实体
/**
* Partitions
*
* @ORM\Table(name="partitions")
* @ORM\Entity
* @ORM\HasLifecycleCallbacks
*/
class Partitions
{
// ...
/**
* @var \Genrepartition
*
* @ORM\OneToMany(targetEntity="Genrepartition", mappedBy="idGenre")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="idGenre", referencedColumnName="idGenre")
* })
*/
private $idgenre;
// ...
/**
* Set idgenre
*
* @param \Acme\PartBundle\Entity\Genrepartition $idgenre
* @return Partitions
*/
public function setIdgenre(\Acme\PartBundle\Entity\Genrepartition $idgenre = null)
{
$this->idgenre = $idgenre;
return $this;
}
/**
* Get idgenre
*
* @return \Acme\PartBundle\Entity\Genrepartition
*/
public function getIdgenre()
{
return $this->idgenre;
}
/**
* Constructor
*/
public function __construct()
{
$this->idgenre = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Add idgenre
*
* @param \Acme\PartBundle\Entity\Genrepartition $idgenre
* @return Partitions
*/
public function addIdgenre(\Acme\PartBundle\Entity\Genrepartition $idgenre)
{
$this->idgenre[] = $idgenre;
return $this;
}
/**
* Remove idgenre
*
* @param \Acme\PartBundle\Entity\Genrepartition $idgenre
*/
public function removeIdgenre(\Acme\PartBundle\Entity\Genrepartition $idgenre)
{
$this->idgenre->removeElement($idgenre);
}
在PartitionsType
上,我尝试了两种嵌入集合的方法,首先是“文档样式”:
->add('idgenre', "collection", array("type" => new GenrepartitionType()))
第二个代码:
->add("idgenre", "entity", array(
"class" => "AcmePartBundle:Genrepartition",
"property" => "libellegenre",
"query_builder" => function(\Doctrine\ORM\EntityRepository $er) {
return $er->createQueryBuilder("u");
}
但问题是我需要有一个集合的集合。
我想知道是否可以这样嵌入:
->add("idgenre", "collection", array("class" => "entity" ...
目前,我在buildForm
和Controller
中使用第二种方法,我自己添加了收藏集,我试图用树枝渲染但没有成功。
这是我的控制器:
$Partition = new \Acme\PartBundle\Entity\Partitions();
//...
$em = $this->getDoctrine()
->getRepository("AcmePartBundle:Genrepartition")->findAll();
foreach($em as $value) $Ajouter->getIdpartition()->addIdgenre($value);
// ...
这是枝条文件:
<select id=".." name="..">
{% for elem in formPart.idpartition.idgenre %}
<option value="{{ elem.vars.value.idgenre }}">{{ elem.vars.value.libellegenre }}</option>
{% endfor %}
</select>