【问题标题】:Symfony: form_widget passing in a variable as the form fieldSymfony:form_widget 传入一个变量作为表单字段
【发布时间】:2015-11-05 00:39:55
【问题描述】:

是否可以将变量传递给 form_widget()。

我有一些在 formBuild 中生成的动态表单字段。 我可以检索这些字段的唯一方法是使用 form_rest();

每条记录可能有不同的字段,因此我无法手动添加字段。

我已将控制器中的字段名称传递到视图中。遍历字段名称并尝试创建字段。

请看下面的例子

{% for meta_field in meta_fields %}
  {% set attr_field = 'form.'~ meta_field ~ '.metaValue' %}
    {{ attr_field }}
    {{ form_widget(attr_field) }}
  {% endfor %}

以下错误

An exception has been thrown during the rendering of a template ("Catchable Fatal Error: Argument 1 passed to Symfony\Component\Form\FormRenderer::searchAndRenderBlock() must be an instance of Symfony\Component\Form\FormView, string given, 

【问题讨论】:

    标签: forms symfony


    【解决方案1】:

    假设您将表单作为form 传递给模板,并且字段名称存储在每个meta_fieldmeta_value 键中,您可以使用树枝@987654325 从meta_fields 获取表单的字段@函数是这样的:

    {% for meta_field in meta_fields %}
    {% set attr_field = attribute(form, meta_field.meta_value) %}
      {{ form_widget(attr_field) }}
    {% endfor %}
    

    【讨论】:

    • 非常感谢attribute(form, meta_field) 这是属性而不是属性。
    • 谢谢,这正是我需要的!
    猜你喜欢
    • 2011-03-19
    • 2018-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 2011-06-26
    • 1970-01-01
    相关资源
    最近更新 更多