I encountered an issue while deleting item from BootstrapCollectionType.
When you delete one of the items using forms, the last item is always deleted instead. I've already debugged a little bit a found out that the problem is in the ReorderCollectionSubscriber.
This subscribers resets keys of the array and that's why the last item is always deleted.
For example:
I have an array:
[
0 => "zero",
1 => "one",
2 => "two",
]
By using forms I delete first array element and all I have now is:
[
1 => "one",
2 => "two",
]
When this array is passed to the ReorderCollectionSubscriber in changes array to:
[
0 => "one",
1 => "two",
]
And this array is at some point passed to doctrine, doctrine does the calculation and from the array it assumes that the array element with key 2 was deleted and so the last entry is deleted from the database.
Maybe I forgot to set something but I don't know why and I don't even know why this ReorderCollectionSubscriber is doing this at all.
In my opinion this is quite a serious bug and should be addresses as soon as possible. For the current project I just commented out the adding of ReorderCollectionSubscriber to BootstrapCollectionType and the problem is gone and as far as I see everything is working normally. But not sure if this is the proper solution.
I encountered an issue while deleting item from BootstrapCollectionType.
When you delete one of the items using forms, the last item is always deleted instead. I've already debugged a little bit a found out that the problem is in the ReorderCollectionSubscriber.
This subscribers resets keys of the array and that's why the last item is always deleted.
For example:
I have an array:
[ 0 => "zero", 1 => "one", 2 => "two", ]By using forms I delete first array element and all I have now is:
[ 1 => "one", 2 => "two", ]When this array is passed to the
ReorderCollectionSubscriberin changes array to:[ 0 => "one", 1 => "two", ]And this array is at some point passed to doctrine, doctrine does the calculation and from the array it assumes that the array element with key
2was deleted and so the last entry is deleted from the database.Maybe I forgot to set something but I don't know why and I don't even know why this
ReorderCollectionSubscriberis doing this at all.In my opinion this is quite a serious bug and should be addresses as soon as possible. For the current project I just commented out the adding of
ReorderCollectionSubscribertoBootstrapCollectionTypeand the problem is gone and as far as I see everything is working normally. But not sure if this is the proper solution.