例如,我有一个实体字段,它开始为空并显示单选按钮,一旦选择单选按钮并保存到实体中,管理页面中的那些单选按钮需要被“禁用”,仍然可见但是并非棘手。
protected function configureFormFields(FormMapper $form)
{
$form->add('radio_buttons', ChoiceType::class,
array('choices' => array(
"choice 1" => 'input1',
"choice 2" => 'input2'),
'choices_as_values' => true, 'multiple'=>false, 'expanded'=>true, 'disabled' => false));
}
答案 0 :(得分:0)
在你看来这样做。
检查是否存在其中一个选择,如果存在则执行不同的代码。
我还建议删除单选按钮(如果存在),并替换为文本。这将阻止一些smartass编辑DOM并更改选择。
答案 1 :(得分:0)
你可以在你的表格中加上一个条件来检查一个领域是否已经填满。 (假设该方法名为getRadioButton())
if ($this->getSubject()->getRadioButton() != null) {
$form->add(here tell than you need disabled buttons)
} else {
$form->add(here tell than you need buttons)
}
另外,在表单字段中,您可以添加“html”属性:
->add('radio_buttons', ChoiceType::class,array(
'what you want'=>'ok',
'attr'=>array("disabled" => true))
所以最后它会给出像
这样的东西if ($this->getSubject()->getRadioButton() != null) {
$form->add('radio_buttons', ChoiceType::class,
array('choices' => array(
"choice 1" => 'input1',
"choice 2" => 'input2'),
'choices_as_values' => true,
'multiple'=>false,
'expanded'=>true,
'attr' => array('disabled'=>true),
));
} else {
$form->add('radio_buttons', ChoiceType::class,
array('choices' => array(
"choice 1" => 'input1',
"choice 2" => 'input2'),
'choices_as_values' => true,
'multiple'=>false,
'expanded'=>true,
));
}
了解更多信息: