symfony2.3中'url'和'path'之间的区别是什么?

Red*_*ood 31 symfony twig

该文件说

{# 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 %}
Run Code Online (Sandbox Code Playgroud)

另外,可以像这样使用'url':

<a href="{{ url('_welcome') }}">Home</a>
Run Code Online (Sandbox Code Playgroud)

它让我困惑的是使用'url'和'path'之间有什么区别?

小智 58

它们非常相似.

路径()

生成相对/绝对路径:

path('contact') 会产生 /contact

URL()

生成方案相对/绝对URL,即域+路径

url('contact') 会产生 http://example.org/contact

使用跨域ajax或生成电子邮件时,url()样式很有用,因为主机名不会相同.

请查看代码https://github.com/symfony/symfony/blob/master/src/Symfony/Bridge/Twig/Extension/RoutingExtension.php了解更多信息


小智 5

url Twig函数生成绝对路径路径Twig函数生成/相关url

示例我们有http://sf2sandbox.local和AcmeDemoBundle

{{ path('_welcome') }} produce /
{{ url('_welcome') }} produce http://sf2sandbox.local/
Run Code Online (Sandbox Code Playgroud)