@@ -322,5 +322,41 @@ Field Variables
322
322
323
323
.. tip ::
324
324
325
- It's significantly faster to use the :ref: `selectedchoice <form-twig-selectedchoice >`
326
- test instead when using Twig.
325
+ In Twig template, instead of using ``is_selected() ``, it's significantly
326
+ faster to use the :ref: `selectedchoice <form-twig-selectedchoice >` test.
327
+
328
+ Accessing Form Choice Data
329
+ ...........................
330
+
331
+ The ``form.vars `` variable of each choice entry holds data such as whether the
332
+ choice is selected or not. If you need to get the full list of choices data and
333
+ values, use the ``choices `` variable from the parent form of the choice entry
334
+ (which is the ``ChoiceType `` itself) with ``form.parent.vars.choices ``::
335
+
336
+ .. code-block :: html+twig
337
+
338
+ {# `true ` or `false `, whether the current choice is selected as radio or checkbox #}
339
+ {{ form.vars.data }}
340
+
341
+ {# the current choice value (i.e a category name when `'choice_value' => 'name' ` #}
342
+ {{ form.vars.value }}
343
+
344
+ {# a map of `ChoiceView ` or `ChoiceGroupView ` instances indexed by choice values or group names #}
345
+ {{ form.parent.vars.choices }}
346
+
347
+ Following the same advanced example as above (where choices values are entities),
348
+ the ``Category `` object is inside ``form.parent.vars.choices[key].data ``::
349
+
350
+ .. code-block :: html+twig
351
+
352
+ {% block _form_categories_entry_widget %}
353
+ {% set entity = form.parent.vars.choices[form.vars.value].data %}
354
+
355
+ <tr>
356
+ <td>{{ form_widget(form) }}</td>
357
+ <td>{{ form.vars.label }}</td>
358
+ <td>
359
+ {{ entity.name }} | {{ entity.group }}
360
+ </td>
361
+ </tr>
362
+ {% endblock %}
0 commit comments