使用的Symfony 3和覆盖FOSUserBundle的登记表,我有一个只读字段:使用Symfony 3,如何将只读字段显示为标签? (在FOSUBundle的登记表)
->add('name', TextType::class, array('attr' => array('readonly' => true)))
现在,它显示为一个文本框,但我想它显示为文本/改为标签。我看不到任何“LabelType”。是否有可能做到这一点?
使用的Symfony 3和覆盖FOSUserBundle的登记表,我有一个只读字段:使用Symfony 3,如何将只读字段显示为标签? (在FOSUBundle的登记表)
->add('name', TextType::class, array('attr' => array('readonly' => true)))
现在,它显示为一个文本框,但我想它显示为文本/改为标签。我看不到任何“LabelType”。是否有可能做到这一点?
它看起来像你需要自定义文本框的外观时,它具有readonly
属性。所以,简单的解决方案可能是一个单一的CSS样式:
// style.css
input[readonly] {
border: none;
// more custom styles
}
我的意思是,没有必要做一些特殊的Symfony和可能是所有输入只读表单字段是有用的。
“read_only”在Symfony 2.8中已弃用,现在只读属性。试试这个:
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'validation_groups' => ['whatever'],
'attr' => ['readonly' => true],
]);
}
在其他情况下,使用表单字段作为ATTR时添加到您的树枝:
{{ form_widget(form.name, {'attr': {readonly:readonly}) }}
做到这一点,正确的方法是做这样和利用的ATTR属性:
->add('name', TextType::class, array(
'attr' => array(
'readonly' => true,
),
));
我在编写帖子时考虑了CSS,然后完全忘了它。这看起来很有希望,但为了充分测试它,我需要解决我在现场获得初始值的其他问题(应尽快开始工作)。 – TTT
是的,这看起来像我在找什么。谢谢! – TTT