Bug #105319
openExtbase domain model combined identity for localized entries
0%
Description
Hello,
After the upgrade to TYPO3 v12 we started receiwing following error after property mapping back to the object from the f:form:
Exception while property mapping at property path "idea": The identity property "16901_16902" is no UID.
It looks it changed in the core https://github.com/TYPO3/typo3/blob/v12.4.22/typo3/sysext/extbase/Classes/Persistence/Generic/Mapper/DataMapper.php#L137
Following piece of code cause the error: https://github.com/TYPO3/typo3/blob/v12.4.22/typo3/sysext/extbase/Classes/Property/TypeConverter/PersistentObjectConverter.php#L228
Combined identifier is created by Form VH from here: https://github.com/TYPO3/typo3/blob/v12.4.22/typo3/sysext/fluid/Classes/ViewHelpers/Form/AbstractFormFieldViewHelper.php#L198
So any form input like this:
<f:form.hidden value="{idea}" property="idea" />
results in this:
<input type="hidden" name="tx_ext_plugin[idea][__identity]" value="16901_16902">
same goes for checkboxes, etc ...
In the default language, it's ok, the problem is only for localized records
Updated by Garvin Hicking 3 months ago
- Related to Bug #59992: Persistence session doesn't take overlays into account added
Updated by Garvin Hicking 3 months ago
- Tags changed from extbae, property mapper to extbase, property mapper
- Is Regression set to Yes
Updated by Andreas Kostner 25 days ago ยท Edited
I've run into this problem too after upgrading to v12.
I can't edit any record in the secondary language anymore. Every select field gets values with _ and saving the record gives then errors such as:
Exception while property mapping at property path "branche": The identity property "22_48" is no UID.
--> I just checked on an old dev copy running on v11. There the SELECT gets filled with the uid's from the original language "22".
Is there a setting in v12 I'm missing or why is it rendered with the form-viewhelper wrongly now?
Updated by Andreas Kostner 25 days ago
To add to this.
In v12 the Select Viewhelper and Persistance use the UID_UIDtranlsated format and it seems that the new Propertymapper / doMapping does not account for that.