Weiß jemand, wie man Strings in Zweigen verkettet? Ich möchte so etwas tun wie:
{{ concat('http://', app.request.host) }}
syntax
twig
string-concatenation
templating
stoefln
quelle
quelle
{% set foo = 'http://' ~ app.request.host %}
. Und dann können Sie tun :{{ foo | trans }}
.{{ form_open('admin/files/?path='~file_path|urlencode)|raw }}
Keine zusätzliche Variable erforderlich.Ein wenig bekanntes Merkmal in Twig ist auch die String-Interpolation :
quelle
Der Operator, den Sie suchen, ist Tilde (~), wie Alessandro sagte, und hier ist es in der Dokumentation:
Und hier ist ein Beispiel irgendwo anders in den Dokumenten :
quelle
In diesem Fall, in dem Sie einfachen Text und eine Variable ausgeben möchten, können Sie dies folgendermaßen tun:
Wenn Sie einige Variablen verketten möchten, ist die Lösung von alessandro1997 viel besser.
quelle
Wie Sie sehen, funktioniert dies mit Filtern und Funktionen, ohne dass
set
eine separate Zeile verwendet werden muss.quelle
Wann immer Sie einen Filter mit einer verketteten Zeichenfolge (oder einer grundlegenden mathematischen Operation) verwenden müssen, sollten Sie ihn mit () umschließen. Z.B.:
{{ ('http://' ~ app.request.host) | url_encode }}
quelle
In Symfony können Sie dies für Protokoll und Host verwenden:
Obwohl @ alessandro1997 eine perfekte Antwort zur Verkettung gab.
quelle
Sie können
~
wie verwenden{{ foo ~ 'inline string' ~ bar.fieldName }}
Sie können aber auch eigene erstellen
concat
Funktion , es zu benutzen , wie in Ihrer Frage:{{ concat('http://', app.request.host) }}
:Im
src/AppBundle/Twig/AppExtension.php
In
app/config/services.yml
:quelle
Schnelle Antwort (TL; DR)
format()
Filter erfolgenDetaillierte Antwort
Kontext
Problem
format
Filter, der aussagekräftiger istLösung
format
Filtersformat
Filter funktioniert wie diesprintf
Funktion in anderen Programmiersprachenformat
Filter ist für komplexere Zeichenfolgen möglicherweise weniger umständlich als der Operator ~Beispiel00
example00 string concat bare
Beispiel01
example01 string concat mit dazwischenliegendem text
Beispiel 02
folgt der gleichen Syntax wie
sprintf
in anderen SprachenSiehe auch
quelle
Um Strings, Variablen und Übersetzungen zu mischen, mache ich einfach Folgendes:
Obwohl alles durcheinander ist, funktioniert es wie ein Zauber.
quelle
Das Trennzeichen "{{...}}" kann auch in Zeichenfolgen verwendet werden:
quelle