У меня есть фронтальное приложение Symfony, которое принимает сериализованную форму Symfony из API, анализирует ее и, наконец, отображает.
Предполагается, что это приложение глупое и никоим образом не должно знатьлогика удаленного приложения.Он просто принимает форму 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 %}
Я знаю, что есть много способов (дополнительная опция поля формы, завернуть его в поле типа коллекции ...), чтобы решить эту проблему с помощью удаленного приложениякод редактируется, но я не хочу по разным причинам, главная из которых состоит в том, чтобы избежать какой-либо дополнительной сложности с кодом удаленного приложения.
Не удалось найти чистый способ решить эту проблему.Ты будешь моим героем?