Шаблон ветки внешний URL img

Я пытаюсь отобразить изображение из профиля на Facebook.

routing.yml

_graph_facebook:
path: graph.facebook.com/{fbId}/{var}
requirements:
    _scheme:  https

template.html.twig

Я получаю htpps: //mydomain.local/graph.facebook.com/facebookId/picture.

Я пытался с активами, но это работает, только если это жестко закодировано.

{% image 'https://graph.facebook.com/'~app.user.facebookId~'/picture'%}
        <img src="{{ asset_url }}" alt="Example" />
{% endimage %}

Этот код не работает, он говорит, что: Неожиданный токен "оператор" значения "~". Я не мог найти ответ, вероятно, это просто очень. Спасибо за Вашу помощь

3 ответа

Решение

Как сказано в комментариях, роутер относится только к URL вашего сайта.

В любом случае, вы можете просто отобразить изображение с помощью facebookId значение:

<img src="https://graph.facebook.com/{{ app.user.facebookId }}/picture" alt="Example" />

Аргументы оператора конкатенации должны быть разделены пробелом.

'https://graph.facebook.com/' ~ app.user.facebookId ~ '/picture'

Внешние URL должны быть экранированы фильтром html_attr:

<img src="{{ asset_url|e('html_attr') }}" alt="Example" />

Вы не можете использовать маршрутизацию для внешнего управления URI только внутренним.

Если вы хотите инкапсулировать это "поведение" в метод / функцию, доступную для ветки, я могу предложить вам создать Twig_Method с помощью собственного расширения ветки: http://symfony.com/doc/current/cookbook/templating/twig_extension.html

Другие вопросы по тегам