Кто-нибудь знает, как соединить строки в веточку? Я хочу сделать что-то вроде:
{{ concat('http://', app.request.host) }}
syntax
twig
string-concatenation
templating
stoefln
источник
источник
{% set foo = 'http://' ~ app.request.host %}
. И тогда вы можете сделать:{{ foo | trans }}
.{{ form_open('admin/files/?path='~file_path|urlencode)|raw }}
нет необходимости в дополнительной переменной.Также малоизвестной особенностью в Twig является интерполяция строк :
источник
Оператор, которого вы ищете, это Тильда (~), как сказал Алессандро, и вот он в документации:
И вот пример где-то еще в документации :
источник
В этом случае, если вы хотите вывести простой текст и переменную, вы можете сделать это следующим образом:
Если вы хотите объединить некоторые переменные, решение alessandro1997 будет намного лучше.
источник
Как вы можете видеть, это работает с фильтрами и функциями без необходимости использования
set
в отдельной строке.источник
Всякий раз, когда вам нужно использовать фильтр с объединенной строкой (или базовой математической операцией), вы должны заключить его в (). Например.:
{{ ('http://' ~ app.request.host) | url_encode }}
источник
В Symfony вы можете использовать это для протокола и хоста:
Хотя @ alessandro1997 дал идеальный ответ о конкатенации.
источник
Ты можешь использовать
~
как{{ foo ~ 'inline string' ~ bar.fieldName }}
Но вы также можете создать свою собственную
concat
функцию, чтобы использовать ее, как в вашем вопросе:{{ concat('http://', app.request.host) }}
:В
src/AppBundle/Twig/AppExtension.php
В
app/config/services.yml
:источник
Быстрый ответ (TL; DR)
format()
фильтраПодробный ответ
контекст
проблема
format
фильтре, который является более выразительнымРешение
format
фильтраformat
Фильтр работает какsprintf
функции в других языках программированияformat
Фильтр может быть менее громоздким , чем оператор для более сложных строк ~Example00
пример00 строка конкат голая
Example01
строка example01, совпадающая с промежуточным текстом
Example02
придерживается того же синтаксиса, что и
sprintf
в других языкахСмотрите также
источник
Чтобы смешать строки, переменные и переводы, я просто делаю следующее:
Несмотря на то, что все смешалось, это работает как шарм.
источник
Разделитель "{{...}}" также можно использовать в строках:
источник