如何在Slim3 Twig中获取路线链接?

时间:2016-11-01 16:00:11

标签: twig slim twig-extension slim-3

我定义了我的路线:

$app->get('/about', function ($request, $response, $args) {
    return $this->view->render($response, 'about.twig');
})->setName('about.page');

我有兴趣按名称获取路线链接,例如:{% get_route('about.page') %}

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

在Slim3中有path_for(name)功能。 F.ex:

{{ path_for('about.page') }}

参考:http://www.slimframework.com/docs/features/templates.html

  

slim/twig-view组件向您的Twig模板公开自定义path_for()功能。您可以使用此函数为Slim应用程序中的任何命名路径生成完整的URL。 path_for()函数接受两个参数:

     
      
  • 1路线名称
  •   
  • 2路径占位符名称和替换值的哈希值
  •   

注意:path_for使用路由器的功能$router->pathFor(..)

为什么不使用{%

{%是树枝中的控件结构,显示Message: Unknown "path_for" tag in "base.twig" at line XX.因为没有定义控件结构的标签,所以twig不知道这实际上是一个函数。 因此,请在twig {{中使用输出结构。

答案 1 :(得分:1)

  

这可能吗?

IIRC

{{ path_for('about.page') }}

参考:

https://github.com/slimphp/Twig-View/blob/master/src/TwigExtension.php#L37