螺栓重复路线
Bolt Repeating Route
是否可以在bolt cms中重复路由?我在我的 routing.yml 中创建了一条看起来像这样的路线
language:
path: /{locale}/{slug}
defaults: { _controller: controller.frontend:template, template: 'page.twig' }
它使用前端控制器上的模板函数呈现 page.twig。因此,当我以这种方式 page.twig 中转储变量时
{{ dump(app.request.get('locale')) }}
{{ dump(app.request.get('slug')) }}
这将输出。
"en"
"Whosebug"
但我想要一个像这样工作的重复路线。
language:
path: /{locale}/{slug**}
defaults: { _controller: controller.frontend:template, template: 'page.twig' }
所以当我访问一个 url 时:
bolt.dev/en/slug1/slug2
我将在我的视图中收到一个名为 slug 的数组,它将输出
[slug1, slug2]
Bolt 在后台使用 Symfony 路由,没有数组参数的概念。
您可以做的是在您的语言环境之后捕获整个 url,然后将其拆分到 Twig 中,因此:
language:
path: /{locale}/{slug}
defaults:
_controller: controller.frontend:template
template: 'page.twig'
requirements:
slug: .+
这允许将斜线捕获为 slug 的一部分,因此假设您的 url 是 /en/slug1/slug2
然后执行 app.request.get('slug')
将 return slug1/slug2
然后你可以在 Twig 中拆分:
{% for slug in app.request.get('slug')|split('/') %}
{{ slug }}
{% endfor %}
是否可以在bolt cms中重复路由?我在我的 routing.yml 中创建了一条看起来像这样的路线
language:
path: /{locale}/{slug}
defaults: { _controller: controller.frontend:template, template: 'page.twig' }
它使用前端控制器上的模板函数呈现 page.twig。因此,当我以这种方式 page.twig 中转储变量时
{{ dump(app.request.get('locale')) }}
{{ dump(app.request.get('slug')) }}
这将输出。
"en"
"Whosebug"
但我想要一个像这样工作的重复路线。
language:
path: /{locale}/{slug**}
defaults: { _controller: controller.frontend:template, template: 'page.twig' }
所以当我访问一个 url 时:
bolt.dev/en/slug1/slug2
我将在我的视图中收到一个名为 slug 的数组,它将输出
[slug1, slug2]
Bolt 在后台使用 Symfony 路由,没有数组参数的概念。
您可以做的是在您的语言环境之后捕获整个 url,然后将其拆分到 Twig 中,因此:
language:
path: /{locale}/{slug}
defaults:
_controller: controller.frontend:template
template: 'page.twig'
requirements:
slug: .+
这允许将斜线捕获为 slug 的一部分,因此假设您的 url 是 /en/slug1/slug2
然后执行 app.request.get('slug')
将 return slug1/slug2
然后你可以在 Twig 中拆分:
{% for slug in app.request.get('slug')|split('/') %}
{{ slug }}
{% endfor %}