symfony 2 path()方法在哪里定义

时间:2012-08-06 20:10:22

标签: symfony

我想看看它是如何运作的。特别是如果它在“_”上进行爆炸,或者它正在根据您传入的参数在路由中搜索等效键。

我搜索了文档,网络和我的代码库,除了它没有太多关于它存在的信息。 symfony docs在构建链接时使用它。

    {# src/Acme/TaskBundle/Resources/views/Default/new.html.twig #}
    <form action="{{ path('task_new') }}" method="post" {{ form_enctype(form) }}>
        {{ form_widget(form) }}

        <input type="submit" />
    </form>

看起来它使用路由文件中的密钥。所以下面的代码:

    {{ path('_welcome') }}

将在您的路由中寻找带有'_welcome'键的路由。

YAML

    _welcome:
        pattern:   /
        defaults:  { _controller: AcmeDemoBundle:Main:homepage }

PHP

    use Symfony\Component\Routing\RouteCollection;
    use Symfony\Component\Routing\Route;

    $collection = new RouteCollection();
    $collection->add('_welcome', new Route('/', array(
        '_controller' => 'AcmeDemoBundle:Main:homepage',
    )));

    return $collection;