Получить количество вариантов из поля сущности в шаблоне Twig - PullRequest
2 голосов
/ 16 марта 2012

У меня есть форма Symfony 2 для сущности Doctrine с полем выбора сущности для отношения ManyToMany. Поле выбора может не иметь выбора - как я могу проверить это в Twig?

Пример. Форма предназначена для объекта «Сделка», который при необходимости может быть присвоен объекту «Местоположение». Я отображаю поле сущности «Местоположение» следующим образом:

{{ form_label(edit_form.locations) }}
{{ form_errors(edit_form.locations) }}
{{ form_widget(edit_form.locations) }}

Поле установлено для отображения с флажками. Однако, возможно, что никаких записей «Location» не будет. В этом случае пользователь увидит метку «Местоположения:», но не будет флажков. Я хотел бы иметь условное утверждение, которое отображает сообщение, что-то вроде этого:

{{ form_label(edit_form.locations) }}
{{ form_errors(edit_form.locations) }}
{{ form_widget(edit_form.locations) }}
{% if edit_form.locations.choices|length == 0 %}
  You haven't created any Locations yet!
{% endif %}

Кто-нибудь знает, как этого добиться?

Ответы [ 2 ]

3 голосов
/ 12 февраля 2016

Просто чтобы помочь другим ...
В более новых версиях это будет:

{% if edit_form.locations.vars.choices|length == 0%}

Я действительно хотел это сделать, поэтому поделюсь:
Если у вас есть встроенная форма и вы хотите выполнить такой же тип проверки, за исключением извлечения данных из прототипа (в случае, если форма не создается ни с какими дочерними формами)

{% if form.childForms.vars.prototype.field.vars.choices|length == 0 %}

«childForms» - это тип встроенной формы, а «field» - поле выбора, из которого вы хотите выбрать ...

0 голосов
/ 19 марта 2012

Нашел:

{% if edit_form.locations.get('choices')|length == 0 %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...