我定义了我的路线:
$app->get('/about', function ($request, $response, $args) {
return $this->view->render($response, 'about.twig');
})->setName('about.page');
我有兴趣按名称获取路线链接,例如:{% get_route('about.page') %}
我怎样才能做到这一点?
答案 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