What is the difference between 'url' and &

2019-03-09 21:52发布

问题:

The document said

{# src/Acme/ArticleBundle/Resources/views/Article/recentList.html.twig #}
{% for article in articles %}
    <a href="{{ path('article_show', {'slug': article.slug}) }}">
        {{ article.title }}
    </a>
{% endfor %}

also, can use 'url' like this:

<a href="{{ url('_welcome') }}">Home</a>

it confused me what is the difference between using 'url' and 'path'?

回答1:

They are very similar.

path()

Generates a relative/absolute path :

path('contact') will generate /contact

url()

Generates a scheme-relative/absolute url, ie domain + path

url('contact') will generate http://example.org/contact

The url() style is useful when using cross-domain ajax or generating emails, because the hostname won't be the same.

Take a look at the code https://github.com/symfony/symfony/blob/master/src/Symfony/Bridge/Twig/Extension/RoutingExtension.php for more information



回答2:

url Twig function generates absolute path path Twig function generates / related url

Example we have http://sf2sandbox.local with AcmeDemoBundle

{{ path('_welcome') }} produce /
{{ url('_welcome') }} produce http://sf2sandbox.local/


标签: symfony twig