我想查看表单中的复选框。但它显示N / A表示0 ,1表示1 。
如何将复选框值格式化为“否”为0,“是”为1?
//twig
<div class="responsive-block">
{{ UI.renderProperty('campuscrm.eventname.system_calendar.label'|trans, eventname.systemCalendar) }}
</div>
//FormType
public function buildForm(FormBuilderInterface $builder, array $options)
{
// system calendar
$builder->add(
'system_calendar',
CheckboxType::class,
array(
'label' => 'campuscrm.eventname.system_calendar.label',
'required' => true,
)
);
}
答案 0 :(得分:0)
您可以使用Data Transformer。 (docs)
$builder->get('system_calendar')
->addModelTransformer(new CallbackTransformer(
function ($toString) {
// transform the bool to a string
return boolval($toString) ? "Yes" : "No";
},
function ($fromString) {
// transform the string back to a bool
return strval($fromString) == "Yes ? true : false;
}
))
;
但我担心这不是你想要做的。复选框组件等待布尔值,您可能会传递其他内容。你能否确认传递一个布尔值? (您可以使用上面提到的变换器来执行此操作,或者在将其传递给formbuilder之前将其强制转换)
答案 1 :(得分:0)
这是一个解决方法。
{{ UI.renderProperty('campuscrm.eventname.system_calendar.label'|trans, eventname.systemCalendar ? 'Yes' : 'No') }}