Php 使用Symfony 3,如何将只读字段显示为标签?(在FOSUBundle&x27;的登记表中)

Php 使用Symfony 3,如何将只读字段显示为标签?(在FOSUBundle&x27;的登记表中),php,css,symfony,stylesheet,fosuserbundle,Php,Css,Symfony,Stylesheet,Fosuserbundle,使用Symfony 3和覆盖的FOSUserBundle注册表,我有一个只读字段: ->add('name', TextType::class, array('attr' => array('readonly' => true))) 现在,它显示为文本框,但我希望它显示为文本/标签。我没有看到像“LabelType”这样的东西。可以这样做吗?Symfony 2.8中不推荐使用“只读”,现在只读是一个属性。试试这个: public function configureOptio

使用Symfony 3和覆盖的FOSUserBundle注册表,我有一个只读字段:

->add('name', TextType::class, array('attr' => array('readonly' => true)))
现在,它显示为文本框,但我希望它显示为文本/标签。我没有看到像“LabelType”这样的东西。可以这样做吗?

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,
),
));

当文本框具有
readonly
属性时,您似乎需要自定义文本框的外观。因此,简单的解决方案可以是单一CSS样式:

// style.css
input[readonly] {
    border: none;
    // more custom styles
}

我的意思是,在Symfony中不需要做什么特殊的事情,并且对所有输入只读表单字段都很有用。

您发布的答案与OP发布的答案完全相同。现在用作
attr
字段的不是
'readonly'=>'readonly'
吗?是的,我认为与@JasonRoman相同。但我不确定,如何在我的小树枝文件中使用它?它大部分是自动生成的…也许我需要覆盖一些我还没有覆盖的内容?(但是,将这些值添加到configureOptions会使所有字段都是只读的,这不是我想要的。)你应该在这篇文章中添加样式标记。我在写文章时考虑了CSS,然后完全忘记了它。这看起来很有希望,但要完全测试它,我需要解决我的另一个问题,即获取字段中的初始值(应该很快就会工作)。是的,这看起来像我正在寻找的。非常感谢。