Alguém sabe como concatenar cordas no galho? Eu quero fazer algo como:
{{ concat('http://', app.request.host) }}
syntax
twig
string-concatenation
templating
stoefln
fonte
fonte
{% set foo = 'http://' ~ app.request.host %}
. E então você pode fazer:{{ foo | trans }}
.{{ form_open('admin/files/?path='~file_path|urlencode)|raw }}
Não há necessidade de uma variável extra.Também um recurso pouco conhecido no Twig é a interpolação de strings :
fonte
O operador que você está procurando é Tilde (~), como disse Alessandro, e aqui está na documentação:
E aqui está um exemplo em outro lugar nos documentos :
fonte
Nesse caso, onde você deseja gerar texto sem formatação e uma variável, faça o seguinte:
Se você deseja concatenar algumas variáveis, a solução de alessandro1997 seria muito melhor.
fonte
Como você pode ver, isso funciona com filtros e funções sem a necessidade de usar
set
em uma linha separada.fonte
Sempre que você precisar usar um filtro com uma string concatenada (ou uma operação matemática básica), envolva-a com (). Por exemplo.:
{{ ('http://' ~ app.request.host) | url_encode }}
fonte
No Symfony, você pode usar isso para protocolo e host:
Embora @ alessandro1997 tenha dado uma resposta perfeita sobre concatenação.
fonte
Você pode usar
~
como{{ foo ~ 'inline string' ~ bar.fieldName }}
Mas você também pode criar sua própria
concat
função para usá-la como em sua pergunta:{{ concat('http://', app.request.host) }}
:No
src/AppBundle/Twig/AppExtension.php
Em
app/config/services.yml
:fonte
Resposta Rápida (TL; DR)
format()
filtroResposta detalhada
Contexto
Problema
format
filtro que é mais expressivoSolução
format
filtroformat
filtro funciona como asprintf
função em outras linguagens de programaçãoformat
filtro pode ser menos pesado que o operador ~ para strings mais complexasExemplo00
example00 string concat bare
Exemplo01
example01 string concat com texto intermediário
Exemplo02
segue a mesma sintaxe que
sprintf
em outros idiomasVeja também
fonte
Para misturar strings, variáveis e traduções, basta fazer o seguinte:
Apesar de tudo estar misturado, funciona como um encanto.
fonte
O delimitador "{{...}}" também pode ser usado dentro de strings:
fonte