带有多个预选复选框的 Symfony 表单

Symfony form with multiple pre-selected checkboxes

我目前正在开发一个 symfony 项目,我需要一个表单来编辑一个名为 Location 的现有实体。 一个 Location 个对象可以容纳 0 to n Machines。表单应包含多个复选框,根据实体 Location 是否已包含任何 Machine 的天气预selected 值。如果是,请预先select复选框,如果不是,则将其留空。

地点:

...
class Location
{    
    /**
     * @ORM\OneToMany(targetEntity="Machine", mappedBy="location")
     *  
     */
    private $machines;
...

机器:

...
class Machine
{

       /**
     * @ORM\ManyToOne(targetEntity="Location", inversedBy="machines")
     * @ORM\JoinColumn(name="location_id", referencedColumnName="id")
     */
    private $location;  
   ...

我这样构建表单:

$form = $this->createFormBuilder($location)
 ->add('name', null , array( 'label' => 'Roomname: ', 'attr'=> array( 'placeholder'=>'Enter a name') ) )
 ->add('descr', null , array( 'label' => 'Description: ',  'attr'=> array( 'placeholder'=>'Enter a description') ) ) 
 ->add('machines', 'entity', array('class' => 'PRwissHostsBundle:Machine',
   'property' => 'name',
   'required' => false, 
   'expanded' => true,
   'multiple' => true, 

   ))
 ->getForm();

上面的代码生成了一个带有几个复选框的表单,旁边是实体名称。我想预先 select 那些机器已经与位置相关的复选框。

我看过 this 问题,但不幸的是 "data" => x 仅指一个值。

有什么办法可以做到这一点吗?提前致谢!

在初始化表单之前,将机器添加到控制器中的 Location 实体。 Symfony 表单将根据实体数据自动设置复选框的值。