我试图在disabled
的占位符上设置ChoiceType
。
虽然我在SO上找到了一些答案,但我无法应用它们。 与此同时,我注意到了一些事情,并且需要这样做。
按照目前的情况,当我们在树枝视图中转储choices
时,我们会注意到choices
是由多个ChoiceView
组成的数组。
因此,我想,也许,我可以直接在formBuilder中使用ChoiceView
,如下所示:
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->add('title')
->add('desc')
->add('status', ChoiceType::class, array(
'choices'=>array(
new ChoiceView('', '', 'Select a status, array('disabled'=>'disabled')),
'Draft'=>'draft',
'Complete'=>'complete',
'Aborted'=>'aborted',
),
));
}
但除此之外,它不起作用......
有没有人知道在使用ChoiceView
时构建表单的方法?
答案 0 :(得分:2)
如果要操作FormView
个对象,则必须在FormType上实现finishView
方法。
在您的具体案例中:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add(
'status',
ChoiceType::class,
array(
'choices' => array(
'Draft' => 'draft',
'Complete' => 'complete',
'Aborted' => 'aborted',
),
)
);
}
public function finishView(FormView $view, FormInterface $form, array $options)
{
array_unshift(
$view->children['status']->vars['choices'],
new ChoiceView('', '', 'Select a status', array('disabled' => 'disabled'))
);
}