Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit16ffcda

Browse files
committed
[Form] Add the docs for EnumType
1 parenta6c6067 commit16ffcda

File tree

3 files changed

+121
-0
lines changed

3 files changed

+121
-0
lines changed

‎reference/forms/types.rst‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ Form Types Reference
2323
types/color
2424

2525
types/choice
26+
types/enum
2627
types/entity
2728
types/country
2829
types/language

‎reference/forms/types/enum.rst‎

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
..index::
2+
single: Forms; Fields; EnumType
3+
4+
EnumType Field
5+
==============
6+
7+
..versionadded::5.4
8+
9+
The ``EnumType`` form field was introduced in Symfony 5.4.
10+
11+
A multi-purpose field used to allow the user to "choose" one or more options
12+
defined in a `PHP enumeration`_. It extends the:doc:`ChoiceType</refernce/forms/types/enum>`
13+
field and defines the same options.
14+
15+
+---------------------------+----------------------------------------------------------------------+
16+
| Rendered as| can be various tags (see below)|
17+
+---------------------------+----------------------------------------------------------------------+
18+
| Default invalid message| The selected choice is invalid.|
19+
+---------------------------+----------------------------------------------------------------------+
20+
| Legacy invalid message| The value {{ value }} is not valid.|
21+
+---------------------------+----------------------------------------------------------------------+
22+
| Parent type|:doc:`ChoiceType</reference/forms/types/choice>`|
23+
+---------------------------+----------------------------------------------------------------------+
24+
| Class|:class:`Symfony\\Component\\Form\\Extension\\Core\\Type\\EnumType`|
25+
+---------------------------+----------------------------------------------------------------------+
26+
27+
..include::/reference/forms/types/options/_debug_form.rst.inc
28+
29+
Example Usage
30+
-------------
31+
32+
Before using this field, you'll need to have some PHP enumeration (or "enum" for
33+
short) defined somewhere in your application. This enum has to be of type
34+
"backed enum", where each keyword defines a scalar value such a string::
35+
36+
// src/Config/TextAlign.php
37+
namespace App\Config;
38+
39+
enum TextAlign
40+
{
41+
case Left = 'Left/Start aligned';
42+
case Center = 'Center/Middle aligned';
43+
case Right = 'Right/End aligned';
44+
}
45+
46+
Instead of using the values of the enumeration in a ``choices`` option, the
47+
``EnumType`` only requires to define the ``class`` option pointing to the enum::
48+
49+
use App\Config\TextAlign;
50+
use Symfony\Component\Form\Extension\Core\Type\EnumType;
51+
// ...
52+
53+
$builder->add('alignment', EnumType::class, ['class' => TextAlign::class]);
54+
55+
This will display a ``<select>`` tag with the three possible values defined in
56+
the ``TextAlign`` enum. Use the ``expanded`` and ``multiple`` options to display
57+
these values as ``<input type="checkbox">`` and ``<input type="radio">``.
58+
59+
Field Options
60+
-------------
61+
62+
class
63+
~~~~~
64+
65+
**type**: ``string`` **default**: (it has no default)
66+
67+
The fully-qualified class name (FQCN) of the PHP enum used to get the values
68+
displayed by this form field.
69+
70+
Inherited Options
71+
-----------------
72+
73+
These options inherit from the:doc:`ChoiceType</reference/forms/types/choice>`:
74+
75+
..include::/reference/forms/types/options/error_bubbling.rst.inc
76+
77+
..include::/reference/forms/types/options/error_mapping.rst.inc
78+
79+
..include::/reference/forms/types/options/expanded.rst.inc
80+
81+
..include::/reference/forms/types/options/multiple.rst.inc
82+
83+
..include::/reference/forms/types/options/placeholder.rst.inc
84+
85+
..include::/reference/forms/types/options/preferred_choices.rst.inc
86+
87+
..include::/reference/forms/types/options/choice_type_trim.rst.inc
88+
89+
These options inherit from the:doc:`FormType</reference/forms/types/form>`:
90+
91+
..include::/reference/forms/types/options/attr.rst.inc
92+
93+
..include::/reference/forms/types/options/data.rst.inc
94+
95+
..include::/reference/forms/types/options/disabled.rst.inc
96+
97+
..include::/reference/forms/types/options/empty_data_declaration.rst.inc
98+
99+
..include::/reference/forms/types/options/empty_data_description.rst.inc
100+
101+
..include::/reference/forms/types/options/help.rst.inc
102+
103+
..include::/reference/forms/types/options/help_attr.rst.inc
104+
105+
..include::/reference/forms/types/options/help_html.rst.inc
106+
107+
..include::/reference/forms/types/options/label.rst.inc
108+
109+
..include::/reference/forms/types/options/label_attr.rst.inc
110+
111+
..include::/reference/forms/types/options/label_format.rst.inc
112+
113+
..include::/reference/forms/types/options/mapped.rst.inc
114+
115+
..include::/reference/forms/types/options/required.rst.inc
116+
117+
..include::/reference/forms/types/options/row_attr.rst.inc
118+
119+
.. _`PHP enumeration`:https://wiki.php.net/rfc/enumerations

‎reference/forms/types/map.rst.inc‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ Choice Fields
1919
~~~~~~~~~~~~~
2020

2121
* :doc:`ChoiceType</reference/forms/types/choice>`
22+
* :doc:`EnumType</reference/forms/types/enum>`
2223
* :doc:`EntityType</reference/forms/types/entity>`
2324
* :doc:`CountryType</reference/forms/types/country>`
2425
* :doc:`LanguageType</reference/forms/types/language>`

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp