Adakah yang tahu cara menggabungkan string dalam ranting? Saya ingin melakukan sesuatu seperti:
{{ concat('http://', app.request.host) }}
syntax
twig
string-concatenation
templating
stoefln
sumber
sumber
{% set foo = 'http://' ~ app.request.host %}
. Dan kemudian Anda bisa lakukan:{{ foo | trans }}
.{{ form_open('admin/files/?path='~file_path|urlencode)|raw }}
Tidak perlu untuk variabel tambahan.Fitur yang kurang dikenal di Twig adalah interpolasi string :
sumber
Operator yang Anda cari adalah Tilde (~), seperti kata Alessandro, dan ini dia dalam dokumentasi:
Dan berikut adalah contoh di tempat lain dalam dokumen :
sumber
Dalam hal ini, di mana Anda ingin menampilkan teks biasa dan variabel, Anda bisa melakukannya seperti ini:
Jika Anda ingin menggabungkan beberapa variabel, solusi alessandro1997 akan jauh lebih baik.
sumber
Seperti yang Anda lihat ini berfungsi dengan filter dan fungsi tanpa harus menggunakan
set
pada baris terpisah.sumber
Setiap kali Anda perlu menggunakan filter dengan string bersambung (atau operasi matematika dasar) Anda harus membungkusnya dengan (). Misalnya.:
{{ ('http://' ~ app.request.host) | url_encode }}
sumber
Di Symfony Anda dapat menggunakan ini untuk protokol dan host:
Meskipun @ alessandro1997 memberikan jawaban yang sempurna tentang penggabungan.
sumber
Anda bisa menggunakan
~
like{{ foo ~ 'inline string' ~ bar.fieldName }}
Tetapi Anda juga dapat membuat
concat
fungsi Anda sendiri untuk menggunakannya seperti dalam pertanyaan Anda{{ concat('http://', app.request.host) }}
::Di
src/AppBundle/Twig/AppExtension.php
Dalam
app/config/services.yml
:sumber
Jawaban Cepat (TL; DR)
format()
filterJawaban terperinci
Konteks
Masalah
format
filter yang lebih ekspresifLarutan
format
filterformat
Filter bekerja sepertisprintf
fungsi dalam bahasa pemrograman lainformat
Filter mungkin kurang rumit daripada operator ~ untuk string yang lebih kompleksContoh00
example00 string concat telanjang
Contoh01
example01 string concat dengan teks campur tangan
Contoh02
mengikuti sintaksis yang sama seperti
sprintf
dalam bahasa lainLihat juga
sumber
Untuk memadukan string, variabel, dan terjemahan, saya cukup melakukan yang berikut:
Meskipun semuanya dicampuradukkan, itu bekerja seperti pesona.
sumber
"{{...}}" - pembatas juga dapat digunakan di dalam string:
sumber