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

时间:2013-12-05 06:59:47

标签: 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 %}

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

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

让我感到困惑的是,使用'url'和'path'之间的区别是什么?

2 个答案:

答案 0 :(得分:55)

它们非常相似。

路径()

生成相对/绝对路径

path('contact')将生成/contact

URL()

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

url('contact')将生成http://example.org/contact

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

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

答案 1 :(得分:5)

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

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

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