Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony2 formbuilder-实体只读字段作为标签_Php_Symfony - Fatal编程技术网

Php Symfony2 formbuilder-实体只读字段作为标签

Php Symfony2 formbuilder-实体只读字段作为标签,php,symfony,Php,Symfony,在symfony2中,是否有可能将实体的只读字段显示为标签,而不是文本字段或其他内容 我目前正在使用以下代码,但使用禁用的文本字段感觉不是很复杂: public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('readonlyfield', 'text', array('property_path' => 'readonlyfield.disp

在symfony2中,是否有可能将实体的只读字段显示为标签,而不是文本字段或其他内容

我目前正在使用以下代码,但使用禁用的文本字段感觉不是很复杂:

public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('readonlyfield', 'text', array('property_path' => 'readonlyfield.displayString','disabled' => true));
        $builder->add('editablefield', 'textarea');
    }
我正在使用symfony 2.4.4

编辑:

我在另一个表单中使用此表单类型:

public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('mySubEntities', 'collection', array('type' => new MySubEntryType()));
        $builder->add('save_to_db',  'submit', array('label' => 'Submit'));
    }
细枝文件:

 {{ form_start(form) }}
    {% for row in form.mySubEntities %}
        <li>
        <ul>
        <table>
        <tr><td>{{ form_label(row.readonlyfield) }} </td><td>{{ form_widget(row.readonlyfield) }}</td></tr>     
        <tr><td>{{ form_label(row.editablefield) }}</td><td> {{ form_widget(row.editablefield) }}</td></tr>
        </table>
        </ul>
    </li>
    {% endfor %}


{{ form_end(form) }}
{{form_start(form)}
{form.mySubEntities%}中的行的%
    • {{form_标签(row.readonlyfield)}{{form_小部件(row.readonlyfield)} {{form_标签(row.editablefield)}{{{form_小部件(row.editablefield)}}
  • {%endfor%} {{form_end(form)}}
    为什么不在模板中呈现实体属性,而不是将其作为表单的一部分?您可以创建自己的字段类型,但这不是我建议的。如果您希望将值显示为类似于表单的文件,我将使用readonly属性。

    您可以使用
    {{form.vars.value.yourfield}
    访问表单中的值


    您有一个嵌套/集合,所以请使用
    {{row.vars.value.yourfield}

    为什么需要这个?如果您想显示正在编辑的实体的属性,只需使用该属性来显示值
    {{entity.readonlyfield}
    ,基本上答案是:否。但是看看@hpatio,它是一种嵌套形式。我有一个由多个实体(集合类型)组成的集合,我希望通过单击提交这些实体,因此我无法从我的细枝文件中访问具体的(子)实体(或者至少不知道如何操作)。@seb您可以使用
    {form.vars.value.yourfield}访问表单中的值
    您有一个嵌套的/集合,所以请尝试
    {{{row.vars.value.readonlyfield}
    @Hpatoio工作起来很有魅力。把评论变成回答,我会接受的。