mad*_*adc 18 checkbox formbuilder symfony
我没有找到任何简单的方法来完成,默认情况下只需检查一个复选框.那可不是那么难,所以我错过了什么?
小智 35
您也可以在表单构建器buildForm方法中设置attr属性:
$builder->add('isPublic', 'checkbox', array(
'attr' => array('checked' => 'checked'),
));
Run Code Online (Sandbox Code Playgroud)
Sgo*_*kes 19
您只需将模型或实体中的值设置为true,然后将其传递给FormBuilder,然后检查它.
如果您查看文档中的第一个示例:
创建一个新任务,然后执行setTask并将此任务添加到FormBuilder.如果您对复选框执行相同操作
$object->setCheckboxValue(true);
Run Code Online (Sandbox Code Playgroud)
并传递对象,您应该看到复选框已选中.
如果它没有按预期工作,请返回一些重现错误的示例代码.
Let*_*eto 19
在Symfony> = 2.3中,"property_path"变为"已映射".
所以:
$builder->add('checkboxName', 'checkbox', array('mapped' => false,
'label' => 'customLabel',
'data' => true, // Default checked
));
Run Code Online (Sandbox Code Playgroud)
lac*_*c10 15
设置'data'选项对我有用.我正在创建一个非实体形式:
$builder->add('isRated','checkbox', array(
'data' => true
));
Run Code Online (Sandbox Code Playgroud)
如果您希望直接在模板中执行此操作:
{{ form_widget(form.fieldName, { 'attr': {'checked': 'checked'} }) }}
Run Code Online (Sandbox Code Playgroud)
使用 FormBuilder:: setData () 方法:
$builder->add('fieldName', 'checkbox', array('property_path' => false));
$builder->get('fieldName')->setData( true );
Run Code Online (Sandbox Code Playgroud)
"property_path" 为 false 导致这是一个非实体字段(否则您应该使用实体设置器将默认值设置为 true)。
默认情况下将选中复选框。
要完成之前的答案,您可以使用多个字段来检查所有选择:
'choice_attr' => function ($val, $key, $index) {
return ['checked' => true];
}
Run Code Online (Sandbox Code Playgroud)
https://symfony.com/doc/3.3/reference/forms/types/choice.html#choice-attr
| 归档时间: |
|
| 查看次数: |
56309 次 |
| 最近记录: |