В форме Symfony (или поле формы, которая является просто собственной формой), сопоставленной с сущностью, вы всегда имеете доступ к базовым данным в form.vars.data
. Так что в этом случае form.vars.data
будет либо null
, либо экземпляром MyClass
.
Для удобства использования в вашем шаблоне вы можете сделать что-то вроде:
{% set my_object = form.field.vars.data %}
{% if my_object %}
{{ my_object.getName() }}
{{ my_object.getDescription() }}
{% endif %}
Таким образом, нет необходимости перекодировать данные вашей сущности для слоя представления, поскольку они всегда уже доступны.
Если вы работаете с EntityType
и хотите получить доступ к свойствам объекта каждого выбора, они также доступны в массиве choices
:
{% for choice in form.field.vars.choices %}
{{ choice.data.getName() }}
{{ choice.data.getDescription() }}
{% endfor %}
Хорошая хитрость, когда вы пытаетесь получить доступ к любым данным формы и не знаете, где искать, это временно добавить строку в ваш шаблон, например:
{{ dump(form.field) }}
Это позволит вам просмотреть доступные данные и посмотреть, что все доступно. Обратите внимание, что для того, чтобы вывод выглядел красиво, необходимо включить расширение отладки Twig и включить XDebug в PHP.