我有一个实体Application
。
我想将我的应用与一些Server
实体相关联。
但在这个链接中,有一些信息,如端口的整数...
为了做到这一点,我创建了另一个实体LinkAppliServ
。
在Application
:
/**
* @var \Doctrine\Common\Collections\ArrayCollection
*
* @ORM\OneToMany(targetEntity="MyBundle\Entity\LinkAppliServ", mappedBy="appli",cascade={"persist"})
*/
private $links;
LinkAppliServ
中的:
/**
* @var \MyBundle\Entity\Application
*
* @ORM\ManyToOne(targetEntity="MyBundle\Entity\Application", inversedBy="links")
* @ORM\JoinColumn(name="appli_id", referencedColumnName="id")
*/
private $appli;
/**
* @var \MyBundle\Entity\Server
*
* @ORM\ManyToOne(targetEntity="MyBundle\Entity\Server", inversedBy="links")
* @ORM\JoinColumn(name="serv_id", referencedColumnName="id")
*/
private $serv;
现在,在Application
的表单中,我希望为我的属性$links
添加多个字段(因为我想在我的Server
类型上设置一个过滤器(这是一个属于Server
)。
我尝试根据需要添加任意数量的属性,但它不起作用(我只想要一个表...) 我试图根据需要创建尽可能多的表单,但也不起作用......
我想要的是这样的:
ApplicationType
:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('links', 'collection', array(
'type' => new LinkAppliServType(), //filter on Server's type1
'allow_add' => true,
'allow_delete' => true
'label' => 'server type 1'
))
->add('links', 'collection', array(
'type' => new LinkAppliServType_2(), //filter on Server's type2
'allow_add' => true,
'allow_delete' => true
'label' => 'server type 2'
))
// and much more... ^^
你会怎么做? 谢谢!