使用 Symfony 3,如何将只读字段显示为标签? (在 FOSUBundle 的注册表中)
With Symfony 3, how to display a read-only field as a label ? (in FOSUBundle's registration form)
使用 Symfony 3 和覆盖 FOSUserBundle 的注册表,我有一个只读字段:
->add('name', TextType::class, array('attr' => array('readonly' => true)))
目前,它显示为文本框,但我希望它显示为 text/label。我什么也没看到 "LabelType"。可以这样做吗?
"read_only" 在 Symfony 2.8 中被弃用,现在 readonly 是一个属性。试试这个:
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,
),
));
看起来您需要自定义具有 readonly
属性的文本框的外观。所以简单的解决方案可以是单一 CSS 样式:
// style.css
input[readonly] {
border: none;
// more custom styles
}
我的意思是,不需要在 Symfony 中做一些特殊的事情,并且可以对所有输入只读表单字段有用。
使用 Symfony 3 和覆盖 FOSUserBundle 的注册表,我有一个只读字段:
->add('name', TextType::class, array('attr' => array('readonly' => true)))
目前,它显示为文本框,但我希望它显示为 text/label。我什么也没看到 "LabelType"。可以这样做吗?
"read_only" 在 Symfony 2.8 中被弃用,现在 readonly 是一个属性。试试这个:
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,
),
));
看起来您需要自定义具有 readonly
属性的文本框的外观。所以简单的解决方案可以是单一 CSS 样式:
// style.css
input[readonly] {
border: none;
// more custom styles
}
我的意思是,不需要在 Symfony 中做一些特殊的事情,并且可以对所有输入只读表单字段有用。