Fix incorrect twig field checks for contacts and companies #13254
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:
during the phptemplate to thig migration, some checks were not correcty converted, resulting in 500 errors when a field doesn't exist.
As Mautic allows to disable specific fields via the UI, this is a common usecase.
in PHP this works
but the equivalent in twig doesn't work, and throws a
Twig\Error\RuntimeError
This PR addresses this, by checking if the parent is defined.
questions for someone more familiar with twig
what is the proper way to check this?
is it
{% if fields.core.city is defined %}
{% if fields.core.city is defined and fields.core.city.value is defined %}
{% if fields.core.city is defined and fields.core.city.value is defined and fields.core.city.value is not empty %}
This makes me wonder is we should provide a generic
does exist is is not empty
helper, to be able to check properly the whole structure?Steps to test this PR:
Twig\Error\RuntimeError
errorss are thrown