[6.x] Parse Antlers enabled fields in Blade templates - #15184
Open
duncanmcclean wants to merge 1 commit into
Open
[6.x] Parse Antlers enabled fields in Blade templates#15184duncanmcclean wants to merge 1 commit into
duncanmcclean wants to merge 1 commit into
Conversation
Fields configured with `antlers: true` were only parsed by the Antlers runtime, so blade templates echoed the raw tags. A blade echo handler now runs `Value::antlersValue()` for those fields, using the cascade as its context, with the same user content sandboxing the antlers runtime applies. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This pull request fixes an issue where fields with the "Parse Antlers" option enabled wouldn't have their Antlers parsed when rendered in a Blade template.
This was happening because Antlers enabled fields are only ever parsed by the Antlers runtime, which calls
Value::antlersValue()when it comes across one. Blade doesn't know anything about that, so echoing aValuefalls through to__toString()and returns the augmented value with the Antlers left as-is.This PR fixes it by registering a Blade echo handler for
Valueobjects, which parses Antlers enabled fields using the cascade as their context. The same user content sandboxing the Antlers runtime applies is used here, so guarded tags and modifiers behave identically in both templating languages. Values without the option enabled are returned untouched.Worth noting: Blade only picks up echo handlers when a view is compiled, so sites will need to run
php artisan view:clearafter upgrading before they'll see the fix.Fixes #8430