Bugfix/12539 fields removed from layout null vals #12578
Merged
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
If you add a custom field to a layout, populate that field with a value and then remove that field from the layout, if you try to get that value via a template, it will still be returned even though the field is no longer part of the layout. In terms of more complex fields (e.g. Money field for Craft 4, the value will be returned as string/number depending on your PHP version, and not as a Money field).
This PR sets custom field values for fields that are not part of the current layout as null.
The same applies to eager-loaded elements - only get them if they’re part of the layout (or if there’s no layout).
This can be merged into Craft 4 too.
Related issues
#12539