As per title, does Twig allow assignments in conditional and how? I know that not all people like these assignments but sometimes they can be very helpful.
This:
{% if (name = attribute(mappings, property)) is defined %}
{% else %}
{% set attrs = attrs|merge(['%s="%s"'|format(name, value)]) %}
{% endif %}
…is not working and gives me and error:
An opened parenthesis is not properly closed. Unexpected token
“operator” of value “=” (“punctuation” expected with value “)”) in
::tooltips.html.twig at line 29.
Your twig error is because of this line
Twig doesn’t like assignment-in-condition expressions, and personally neither do I, it’s just a lazy shortcut and the potential issues isn’t worth saving a few keystrokes.
But I have to now admit that I’m confused by what this is supposed to do. You’re attempting to capture the result of
attribute(mappings, property)intonamebut if that fails, only then do you do something usingname, but by thennamewon’t have a value unless it’s been defined elsewhere in the template.