Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
bug #1155 Handle array-like objects when working with checkboxes (Lus…
…tmored) This PR was squashed before being merged into the 2.x branch. Discussion ---------- Handle array-like objects when working with checkboxes | Q | A | ------------- | --- | Bug fix? | yes | New feature? | no <!-- please update src/**/CHANGELOG.md files --> | Tickets | | License | MIT First of all please take a look at added test cases. I think it shows the purpose of this change clearly. Background: Recently when working with forms inside a component I ran into a corner case, where Symfony forms are setting a non-zero-indexed array for the properties of `ChoiceType` with both `multiple` and `expanded`. It breaks live-component model assumption that multiple checkboxes keep their value as an array, which in JavaScript is always zero-indexed. It happens after a pretty weird set of steps: - check any option (foo) - check any other option (bar) - check the third option (baz) - uncheck option 'foo' <- Symfony forms store current value as `[1 => 'bar', 2 => 'baz']` - uncheck option 'bar' <- at this point current implementation is treating checkboxes as a single value and send back `null` instead of `['baz']`. This simple change fixes this flow (tested on a real life project). I don't see any correlation with failing tests. Commits ------- 6b75580 Handle array-like objects when working with checkboxes
- Loading branch information