【问题标题】:Symfony form with multiple pre-selected checkboxes带有多个预选复选框的 Symfony 表单
【发布时间】:2015-04-14 11:14:33
【问题描述】:

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

地点:

...
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();

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

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

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

【问题讨论】:

    标签: forms symfony checkbox


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 2013-07-22
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多