Symfony 路由器上的可选文本
Optional text on Symfony router
我正在尝试使用 Symfony 路由器,但无法实现我的目标。
我确实想在此路径中添加一个可选文本,尤其是 /page-{page}
。所以我问是否有可能对相同的路由器路径有两种可能性,如下所示:
- /主题/{id}
- /topic/{id}/page-{page}
routing.yml:
utm_forum_forum:
path: /forum/{id}/page-{page}
defaults:
_controller: UTMForumBundle:Forum:forum
page: 1
requirements:
id: \d+
page: \d+
感谢阅读,如果我不够清楚我可以重新解释:)
utm_forum_forum:
path: /forum/{id}/page-{page}
defaults: { _controller: UTMForumBundle:Forum:forum, page: null }
因此,如果您请求 /forum/15/page- 将在 {page} 参数中为您提供 null。
不知道是不是你需要的
您需要为所有可能的配置添加路由。
因此,如果您的页面 slug 是可选的,您的路由 table 应该类似于:
utm_forum_forum_default:
path: /forum/{id}
defaults:
_controller: UTMForumBundle:Forum:forum
page: 1
requirements:
id: \d+
utm_forum_forum:
path: /forum/{id}/page-{page}
defaults:
_controller: UTMForumBundle:Forum:forum
requirements:
id: \d+
page: \d+
当 page slug 完全省略时,应该提供第 1 页的默认值,或者在 ID 后需要 page-N
形式的内容。
我正在尝试使用 Symfony 路由器,但无法实现我的目标。
我确实想在此路径中添加一个可选文本,尤其是 /page-{page}
。所以我问是否有可能对相同的路由器路径有两种可能性,如下所示:
- /主题/{id}
- /topic/{id}/page-{page}
routing.yml:
utm_forum_forum:
path: /forum/{id}/page-{page}
defaults:
_controller: UTMForumBundle:Forum:forum
page: 1
requirements:
id: \d+
page: \d+
感谢阅读,如果我不够清楚我可以重新解释:)
utm_forum_forum:
path: /forum/{id}/page-{page}
defaults: { _controller: UTMForumBundle:Forum:forum, page: null }
因此,如果您请求 /forum/15/page- 将在 {page} 参数中为您提供 null。
不知道是不是你需要的
您需要为所有可能的配置添加路由。
因此,如果您的页面 slug 是可选的,您的路由 table 应该类似于:
utm_forum_forum_default:
path: /forum/{id}
defaults:
_controller: UTMForumBundle:Forum:forum
page: 1
requirements:
id: \d+
utm_forum_forum:
path: /forum/{id}/page-{page}
defaults:
_controller: UTMForumBundle:Forum:forum
requirements:
id: \d+
page: \d+
当 page slug 完全省略时,应该提供第 1 页的默认值,或者在 ID 后需要 page-N
形式的内容。