-
-
Notifications
You must be signed in to change notification settings - Fork 5.2k
[WIP] [2.7+] explicit differences between 'data' & 'empty_data' options in FormType #6265
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
77a5fbb
8fa74d9
f5f9c1e
60c8893
133a77c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,12 @@ | ||
data | ||
~~~~ | ||
|
||
**type**: ``mixed`` **default**: Defaults to field of the underlying object (if there is one) | ||
**type**: ``mixed`` **default**: Defaults to field of the underlying structure. | ||
|
||
When you create a form, each field initially displays the value of the | ||
corresponding property of the form's domain object (if an object is bound | ||
to the form). If you want to override the initial value for the form or | ||
just an individual field, you can set it in the data option:: | ||
When you attach a form type to a form, it becomes a field that initially maps | ||
the value of the corresponding property or key of the form's domain data. If | ||
you want to override the initial value which will be rendered in the view for | ||
the form or any field, you can set it in the data option:: | ||
|
||
$builder->add('token', 'hidden', array( | ||
'data' => 'abcdef', | ||
|
@@ -15,5 +15,5 @@ just an individual field, you can set it in the data option:: | |
.. note:: | ||
|
||
The default values for form fields are taken directly from the underlying | ||
data structure (e.g. an entity or an array). The ``data`` option overrides | ||
this default value. | ||
data structure matching the field name with a property of an object or a | ||
key of an array. The ``data`` option overrides this default value. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You should make it clearer than overriding the default value like this will cause issues if you are using the form to edit an object rather than to create it, as the form value will still be filled from There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thank you for this heads-up! There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @stof done in the sentence below |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,11 +10,12 @@ empty_data | |
DEFAULT_PLACEHOLDER | ||
|
||
This option determines what value the field will return when the submitted | ||
value is empty. | ||
value is empty. It does not set an initial value if none is provided when | ||
the form is rendered in a view (see `Data` or `Placeholder` options). | ||
|
||
But you can customize this to your needs. For example, if you want the | ||
``gender`` choice field to be explicitly set to ``null`` when no value is | ||
selected, you can do it like this:: | ||
It helps you handling form submission and you can customize this to your needs. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We could maybe remove "customize" as this is the point of an option. |
||
For example, if you want the ``gender`` choice field to be explicitly set to ``null`` | ||
when no value is selected, you can do it like this:: | ||
|
||
$builder->add('gender', 'choice', array( | ||
'choices' => array( | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This example also needs to be changed (ref silexphp/Silex#1300 (comment)). And it makes no sense to use We should override it for this type to make it even clearer as it is on its own the most confusing and principal cause of issues. |
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tried to centralize structure references in the note.