【发布时间】:2026-02-11 18:40:01
【问题描述】:
我有一个前端 symfony 应用程序,它从 API 获取序列化的 symfony 表单,解析它并最终呈现它。
这个应用程序应该是愚蠢的,并且不应该以任何方式了解任何远程应用程序的逻辑。 就是json格式,解析后显示出来。
序列化表单中的字段具有自定义(远程应用定义)块名称,然后在前端应用的表单主题中使用这些名称来构建字段结构。
表示字段示例:
"field_1": {
"options": {
"block_name": "block_name_example",
"label": "Example",
"required": true,
"disabled": false,
"choices": {
"Choice 1": "1",
"Choice 2": "2"
},
"help_description": "",
"attr": {
"name": "field_name_1",
"short_name": "fieldName1"
}
},
"type": "Symfony\\Component\\Form\\Extension\\Core\\Type\\ChoiceType"
}
我想在 form_theme 块中添加“第一次匹配此块名称”的内容(例如),在远程应用端不添加任何逻辑,例如:
{% block _form_block_name_example %}
{% if match_occurrence = 1 %}
{# do something here #}
{% endif %}
{{ form_widget(form) }}
{% endblock %}
我知道有很多方法(表单字段额外选项,将其包装到集合类型字段中......)通过远程应用程序代码编辑来解决这个问题,但由于各种原因我不想这样做,主要是以避免对远程应用程序的代码造成任何额外的复杂性。
找不到解决此问题的干净方法。你愿意做我的英雄吗?
【问题讨论】:
标签: forms symfony twig symfony4