Symfony4 路由参数顺序
Symfony4 route param order
我有 1 个 slug、2 个整数(类别、页面)的路由:
@Route("/articles-{categorySlug}-{category}-{page}", name="article.list.category", defaults={"page": 1}, requirements={"category": "\d+", "page": "\d+", "categorySlug": "[0-9a-zA-Z\/\-]*"})
干得好:
Url: /articles-categorySlug-5
结果:categorySlug:categorySlug,类别:5,页面:1(默认)
糟糕的工作(修复):
Url: /articles-categorySlug-5-2
结果:categorySlug: categorySlug, category: 2 (should be 5), page: 1 (should be 2)
我该如何解决?
这是因为类别 slug 正则表达式是贪婪的。添加尾随 ?
使其不贪心:
@Route("/articles-{categorySlug}-{category}-{page}", name="article.list.category", defaults={"page": 1}, requirements={"category": "\d+", "page": "\d+", "categorySlug": "[0-9a-zA-Z\/\-]*?"})
我有 1 个 slug、2 个整数(类别、页面)的路由:
@Route("/articles-{categorySlug}-{category}-{page}", name="article.list.category", defaults={"page": 1}, requirements={"category": "\d+", "page": "\d+", "categorySlug": "[0-9a-zA-Z\/\-]*"})
干得好:
Url: /articles-categorySlug-5
结果:categorySlug:categorySlug,类别:5,页面:1(默认)
糟糕的工作(修复):
Url: /articles-categorySlug-5-2
结果:categorySlug: categorySlug, category: 2 (should be 5), page: 1 (should be 2)
我该如何解决?
这是因为类别 slug 正则表达式是贪婪的。添加尾随 ?
使其不贪心:
@Route("/articles-{categorySlug}-{category}-{page}", name="article.list.category", defaults={"page": 1}, requirements={"category": "\d+", "page": "\d+", "categorySlug": "[0-9a-zA-Z\/\-]*?"})