So verketten Sie Strings in einem Zweig
Weiß jemand, wie man strings verketten in twig? Ich möchte etwas machen wie:
{{ concat('http://', app.request.host) }}
InformationsquelleAutor der Frage stoefln | 2011-10-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser sollte funktionieren:
Einen filter hinzufügen - wie 'trans' - in den gleichen tag verwenden
Als Adam Elsodaney Punkte auskönnen Sie auch string-interpolationdies erfordert double-quoted strings:
InformationsquelleAutor der Antwort Alessandro Desantis
Auch eine wenig bekannte Funktion in Twig ist string-interpolation:
InformationsquelleAutor der Antwort Adam Elsodaney
In diesem Fall, wo Sie wollen, um die Ausgabe von plain text und eine variable, du könntest es so machen:
Wenn Sie möchten, verketten einige Variablen, alessandro1997 die Lösung wäre viel besser.
InformationsquelleAutor der Antwort alghimo
Den Betreiber, den Sie suchen, ist die Tilde (~), wie Alessandro schon sagte, und hier ist es in der Dokumentation:
Und hier ist ein Beispiel irgendwo in den docs:
InformationsquelleAutor der Antwort Nabil Kadimi
Wie Sie sehen können, arbeitet mit filtern und Funktionen, ohne die Verwendung
set
auf einer separaten Zeile.InformationsquelleAutor der Antwort Simon Epskamp
Wann immer Sie brauchen, um einen filter mit einem verketteten string (oder eine grundlegende mathematische operation), sollten Sie wickeln Sie es mit ()'en. ZB.:
{{ ('http://' ~ app.request.host) | url_encode }}
InformationsquelleAutor der Antwort lsouza
In Symfony können Sie diese für Protokoll und host:
Obwohl @alessandro1997 gab die perfekte Antwort über Verkettung.
InformationsquelleAutor der Antwort Minras
Können Sie
~
wie{{ foo ~ 'inline string' ~ bar.fieldName }}
Aber Sie können auch Ihre eigenen erstellen
concat
Funktion zu verwenden, wie in deiner Frage:{{ concat('http://', app.request.host) }}
:In
src/AppBundle/Twig/AppExtension.php
In
app/config/services.yml
:InformationsquelleAutor der Antwort luchaninov
Mischen, strings, Variablen und übersetzungen, die ich tun Sie einfach Folgendes:
Obwohl alles Durcheinander, es funktioniert wie ein Charme.
InformationsquelleAutor der Antwort Gingi
Schnelle Antwort (TL;DR)
format()
filterAusführliche Antwort
Kontext
Problem
format
filter, die mehr expressiveLösung
format
filterformat
filter funktioniert wie dersprintf
Funktion in anderen Programmiersprachenformat
filter ist vielleicht weniger aufwändig, als der ~ - operator für komplexere ZeichenfolgenExample00
example00 string concat nackten
Example01
example01 string concat mit dazwischen liegenden text
Example02
folgt der gleichen syntax wie
sprintf
in anderen SprachenSiehe auch
InformationsquelleAutor der Antwort dreftymac
"{{ ... }} "- Trennzeichen kann auch verwendet werden, innerhalb von Zeichenfolgen:
InformationsquelleAutor der Antwort user2345998