540 Stimmen

Wie man Strings in twig verkettet

Weiß jemand, wie man Zeichenketten in Twig verkettet? Ich möchte etwas tun wie:

{{ concat('http://', app.request.host) }}

1033voto

Alessandro Desantis Punkte 13768

Das sollte gut funktionieren:

{{ 'http://' ~ app.request.host }}

Um einen Filter - wie 'trans' - im selben Tag hinzuzufügen, verwenden Sie

{{ ('http://' ~ app.request.host) | trans }}

Als Adam Elsodaney weist darauf hin können Sie auch verwenden String-Interpolation erfordert dies doppelte Anführungsstriche:

{{ "http://#{app.request.host}" }}

114voto

Adam Elsodaney Punkte 7554

Eine wenig bekannte Funktion in Twig ist auch String-Interpolation :

{{ "http://#{app.request.host}" }}

32voto

Nabil Kadimi Punkte 9308

Der Operator, den Sie suchen, ist Tilde (~), wie Alessandro sagte, und hier steht er in der Dokumentation:

~: Konvertiert alle Operanden in Strings und verkettet sie. {{ "Hallo " ~ name ~ "!" }} würde (unter der Annahme, dass name 'John' ist) Hello John! zurückgeben. - http://twig.sensiolabs.org/doc/templates.html#other-operators

Und hier ist ein Beispiel irgendwo anders in den Dokumenten :

{% set greeting = 'Hello' %}
{% set name = 'Fabien' %}

{{ greeting ~ name|lower }}   {# Hello fabien #}

{# use parenthesis to change precedence #}
{{ (greeting ~ name)|lower }} {# hello fabien #}

22voto

alghimo Punkte 2899

In diesem Fall, in dem Sie reinen Text und eine Variable ausgeben wollen, könnten Sie dies so tun:

http://{{ app.request.host }}

Wenn Sie einige Variablen verketten wollen, wäre die Lösung von alessandro1997 viel besser.

16voto

Simon Epskamp Punkte 7687
{{ ['foo', 'bar'|capitalize]|join }}

Wie Sie sehen können, funktioniert dies mit Filtern und Funktionen, ohne dass Sie die set in einer separaten Zeile.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X