【问题标题】:How to get route link in Slim3 Twig?如何在 Slim3 Twig 中获取路线链接?
【发布时间】:2023-03-19 03:50:01
【问题描述】:

我这样定义我的路线:

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

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

我怎样才能做到这一点?

【问题讨论】:

    标签: twig slim twig-extension slim-3


    【解决方案1】:

    在 Slim3 中有 path_for(name) 函数。前:

    {{ 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(..)

    为什么不使用{%

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

    【讨论】:

      【解决方案2】:

      这可能吗?

      是的。

      IIRC

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

      参考:

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

      【讨论】:

      • 我只到那里Message: Unknown "path_for" tag in "base.twig" at line 39. 我要写什么函数?
      • 不,该功能已内置。检查路径名拼写。
      • @Michelle 该功能被烘焙到 Twig-View slim 包中。 github.com/slimphp/Twig-View/blob/master/src/…
      猜你喜欢
      • 1970-01-01
      • 2018-03-05
      • 1970-01-01
      • 2020-03-14
      • 1970-01-01
      • 2016-09-03
      • 2018-06-07
      • 2020-04-16
      • 1970-01-01
      相关资源
      最近更新 更多