如何使用 Twig 中的变量设置路由参数名称?

How can I set the route parameter name using a variable in Twig?

我正在尝试将 url Twig 函数与 Silex 一起使用来生成路由,但是当我使用传递给模板的变量名时,它会生成一条警告,提示我没有提供参数.

这是我传递给模板的数组:

   [
     "total_pages" => $pages,
     "current_page" => $page,
     "route_name" => "gallery_album",
     "route_parameter" => "groupname",
     "route_value" => $groupname
   ]

在我尝试使用的模板中:

{{ url(route_name, {route_parameter: route_value, 'page': page} ) }}

(页面变量值在模板中计算)

这是我正在构建的分页模板的一部分,因此我需要参数是一个变量,以便它可以应用于不同的页面。这是我在 运行 this:

时得到的错误

我觉得这很简单,我只是缺少一些基本的东西。

它认为route_parameter是字符串键名而不是变量:

你可以这样做,例如:

{% set params = {'page': page, (route_parameter): route_value } %}
{{ url(route_name, params) }}

您可以使用 {{ app->path}}{{ app->url }} 如果您在应用程序 class

中使用 Silex\Application\UrlGeneratorTrait

或使用这个

的替代方法
{{ app.url_generator.generate('homepage') }}