带有多个预选复选框的 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 表单将根据实体数据自动设置复选框的值。
我目前正在开发一个 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 表单将根据实体数据自动设置复选框的值。