Ich hatte gerade das gleiche Problem - und mit dieser ersten Antwort und nach einigen zusätzlichen Recherchen gefunden {{ attribute(_context, 'placeholder'~invoice.id) }}
sollte funktionieren ( _context
ist das globale Kontextobjekt, das alle Objekte nach Namen enthält)
Anstatt die Funktion attribute
zu verwenden, können Sie auf die Werte von _context
array mit der regulären Klammernotation:
Ich würde diesen hier persönlich verwenden, da er prägnanter und meiner Meinung nach klarer ist.
Wenn die Umgebungsoption strict_variables
auf true
festgelegt ist , sollten Sie auch den default
Filter verwenden:
Andernfalls erhalten Sie eine Ausnahme Twig_Error_Runtime
, wenn die Variable nicht existiert. Wenn Sie beispielsweise die Variablen foo
und bar
haben, aber versuchen, die Variable baz
(die nicht existiert) auszugeben, erhalten Sie diese Ausnahme mit der Nachricht Key "baz" for array with keys "foo, bar" does not exist
.
Eine ausführlichere Möglichkeit, die Existenz einer Variablen zu überprüfen, besteht darin, den defined
-Test zu verwenden :
Mit dem Filter default
können Sie auch einen Standardwert angeben, z. null
oder ein String:
Wenn Sie den Standardwert weglassen (d. h. Sie verwenden |default
anstelle von |default(somevalue)
), ist der Standardwert eine leere Zeichenfolge.
strict_variables
ist standardmäßig false
, aber ich bevorzuge es auf true
zu setzen, um zufällige Probleme zu vermeiden, die z. Tippfehler.
Meine Lösung für dieses Problem:
Erstellt ein Array von Platzhaltern (x). Wie:
%Vor%Senden Sie beide Variablen für die Ansicht und in Ihren Vorlagenaufruf:
%Vor%Dieser Ausdruck "B".
Ich hoffe, das hilft Ihnen.