-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
[Form] Forms now don't create empty objects anymore if they are empty and not required #3257
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
Conversation
…etely empty and not required. The empty data for these forms is null.
|
||
$this->assertEquals($author, $form->getData()); | ||
} | ||
|
||
public function testBindEmptyWithEmptyDataCreatesNoObjectIfNotRequired() |
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.
typo? two empty
s
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.
No typo. It's bound empty (without data) while the form has no (empty) data. It's slightly confusing, I agree.
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 see. The other test names also confused me. I think it would be more clear with on
preposition.
So testBindEmptyDataOnEmptyDataCreatesNoObjectIfNotRequired
and testBindOnEmptyDataCreatesObjectIfClassAvailable
.
Commits ------- bd461e2 [Form] Forms now don't create empty objects anymore if they are completely empty and not required. The empty data for these forms is null. Discussion ---------- [Form] Forms now don't create empty objects anymore if they are empty and not required Bug fix: yes Feature addition: no Backwards compatibility break: no Symfony2 tests pass: yes Fixes the following tickets: #2861 Todo: -  If a form (or a nested form) is left completely empty upon submission and is not required, no new data object will be generated anymore. Instead, the form returns null as data.
…ata handling of collections (peterrehm) This PR was squashed before being merged into the 2.5-dev branch (closes #9773). Discussion ---------- [Form] Added delete_empty option to allow proper emptyData handling of collections | Q | A | ------------- | --- | Bug fix? | yes | New feature? | yes/no? | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | #9375 | License | MIT | Doc PR | symfony/symfony-docs#3338 This PR adresses the issue that if you have a form collection with the option required => false and you submit an empty collection so you will get a ArrayCollection that contains en element with the value null. This behaviour was introduced with the following changes from #3257 In addition to the above mentioned ticket there is also a description about the same issue here: http://stackoverflow.com/questions/19474872/symfony2-form-collection-allow-add-and-allow-delete-null-error-silex With the changes of this PR the new option empty_data is introduced. With this option you will be able to ignore/delete such empty collections, so they will neither be validated nor appear as empty field in the result. The option will remove/ignore such empty collections if you add them newly and if allow_add is enabled and removes such empty collections only if allow_delete is enabled. With setting required and empty_data accordingly it will be now flexible to customize to the outcome you want to achieve. Thanks to @bschussek for the great work together - We have to discuss how to name this option so if delete or ignore is the appropriate name. Commits ------- 8bdb7a0 [Form] Added delete_empty option to allow proper emptyData handling of collections
…ata handling of collections (peterrehm) This PR was squashed before being merged into the 2.5-dev branch (closes #9773). Discussion ---------- [Form] Added delete_empty option to allow proper emptyData handling of collections | Q | A | ------------- | --- | Bug fix? | yes | New feature? | yes/no? | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | #9375 | License | MIT | Doc PR | symfony/symfony-docs#3338 This PR adresses the issue that if you have a form collection with the option required => false and you submit an empty collection so you will get a ArrayCollection that contains en element with the value null. This behaviour was introduced with the following changes from symfony/symfony#3257 In addition to the above mentioned ticket there is also a description about the same issue here: http://stackoverflow.com/questions/19474872/symfony2-form-collection-allow-add-and-allow-delete-null-error-silex With the changes of this PR the new option empty_data is introduced. With this option you will be able to ignore/delete such empty collections, so they will neither be validated nor appear as empty field in the result. The option will remove/ignore such empty collections if you add them newly and if allow_add is enabled and removes such empty collections only if allow_delete is enabled. With setting required and empty_data accordingly it will be now flexible to customize to the outcome you want to achieve. Thanks to @bschussek for the great work together - We have to discuss how to name this option so if delete or ignore is the appropriate name. Commits ------- 8bdb7a0 [Form] Added delete_empty option to allow proper emptyData handling of collections
…ata handling of collections (peterrehm) This PR was squashed before being merged into the 2.5-dev branch (closes #9773). Discussion ---------- [Form] Added delete_empty option to allow proper emptyData handling of collections | Q | A | ------------- | --- | Bug fix? | yes | New feature? | yes/no? | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | #9375 | License | MIT | Doc PR | symfony/symfony-docs#3338 This PR adresses the issue that if you have a form collection with the option required => false and you submit an empty collection so you will get a ArrayCollection that contains en element with the value null. This behaviour was introduced with the following changes from symfony/symfony#3257 In addition to the above mentioned ticket there is also a description about the same issue here: http://stackoverflow.com/questions/19474872/symfony2-form-collection-allow-add-and-allow-delete-null-error-silex With the changes of this PR the new option empty_data is introduced. With this option you will be able to ignore/delete such empty collections, so they will neither be validated nor appear as empty field in the result. The option will remove/ignore such empty collections if you add them newly and if allow_add is enabled and removes such empty collections only if allow_delete is enabled. With setting required and empty_data accordingly it will be now flexible to customize to the outcome you want to achieve. Thanks to @bschussek for the great work together - We have to discuss how to name this option so if delete or ignore is the appropriate name. Commits ------- 8bdb7a0 [Form] Added delete_empty option to allow proper emptyData handling of collections
…ata handling of collections (peterrehm) This PR was squashed before being merged into the 2.5-dev branch (closes #9773). Discussion ---------- [Form] Added delete_empty option to allow proper emptyData handling of collections | Q | A | ------------- | --- | Bug fix? | yes | New feature? | yes/no? | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | #9375 | License | MIT | Doc PR | symfony/symfony-docs#3338 This PR adresses the issue that if you have a form collection with the option required => false and you submit an empty collection so you will get a ArrayCollection that contains en element with the value null. This behaviour was introduced with the following changes from symfony/symfony#3257 In addition to the above mentioned ticket there is also a description about the same issue here: http://stackoverflow.com/questions/19474872/symfony2-form-collection-allow-add-and-allow-delete-null-error-silex With the changes of this PR the new option empty_data is introduced. With this option you will be able to ignore/delete such empty collections, so they will neither be validated nor appear as empty field in the result. The option will remove/ignore such empty collections if you add them newly and if allow_add is enabled and removes such empty collections only if allow_delete is enabled. With setting required and empty_data accordingly it will be now flexible to customize to the outcome you want to achieve. Thanks to @bschussek for the great work together - We have to discuss how to name this option so if delete or ignore is the appropriate name. Commits ------- 8bdb7a0 [Form] Added delete_empty option to allow proper emptyData handling of collections
Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #2861
Todo: -
If a form (or a nested form) is left completely empty upon submission and is not required, no new data object will be generated anymore. Instead, the form returns null as data.