【问题标题】:Setting default value on a Symfony2 radio button choice field在 Symfony2 单选按钮选择字段上设置默认值
【发布时间】:2012-04-13 07:23:48
【问题描述】:

我有以下 Symfony2 表单:

public function buildForm(FormBuilder $builder, array $options)
{   
    $builder
        ->add('submitter_is_home', 'choice', array(
            'expanded' => true,
            'choices' => array('1' => 'Home', '' => 'Away'),
            'data' => '1',
        ))  
    ;   
}   

(为了清楚起见,我省略了其他字段。)

当我在浏览器中访问此表单时,未选择“主页”选项。我也检查了源,它看起来也没有设置正确的属性。

单选按钮的默认值是否与其他类型的choice 字段不同?这里会发生什么?

【问题讨论】:

    标签: symfony symfony-forms


    【解决方案1】:

    在您的控制器 newAction() 中,在 $form = $this->createCreateForm($entity); 之前添加像这样的默认值 $entity->setSubmitter_is_home(1);

    【讨论】:

      【解决方案2】:

      如果您想选择一个选项,empty_value 将不起作用。

      简单的解决方案是在添加表单之前为您的对象设置一个值(如$myentity->setRadiobutton(1))。 Symfony 将理解并将其添加为选定值(适用于选择类型,因此可能与收音机相同!)

      【讨论】:

      • 将表单元素设置为 'property_path' => false 无济于事。
      • 当你有没有实体的表单时?​​span>
      • 为表单类型提供一个数组,而不是一个对象,其中键为表单类型中的键,值为 1 或 true(可能没有测试)。应该做的伎俩
      • 在我的例子中,我使用了一个名为 'type' 的 'choise' 类型字段,没有实体。解决方法:$form->get('type')->setData('default_val');
      猜你喜欢
      • 2013-03-01
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-07
      • 2020-08-10
      • 2014-02-25
      • 1970-01-01
      相关资源
      最近更新 更多