fix for conditional fields in globals, users not being saved #12323
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Conditional fields in globals aren't saved. This is in fact happening "because
Element::setFieldValuesFromRequest()
is runningElement::fieldLayoutFields($visibleOnly = true)
".It doesn't happen for entries because of autosaving drafts being turned on. When your draft is autosaved, it only gets validated against the "essentials" and all values are saved to the DB and then by the time you see the conditioned field, it's already treated as visible. If you were to disable autosaving drafts, you would see the exact same behaviour for entries too (but we do not encourage disabling autosaving drafts).
This issue is happening for Globals, Users and Assets because these elements do not have autosaving functionality.
This change is to check if element on which we're trying to
setFieldValuesFromRequest()
supports autosaving.Related issues
#12166