繁体   English   中英

具有动态可选参数的Symfony路由

Symfony routing with dynamic optional parameters

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我是Symfony框架的新手。 目前,我在mybundle / Resources / config / routing.yml中有路由:

fcr_category_head:
  path: head/{slug}/{city}/{page}
  defaults: { _controller: AppBundle:Head:index, slug: "", city: "all", page: 1 }
  requirements: {page: "\d+"}

问题是当用户使用过滤器将结果范围缩小到所选城市时, city选项可用,如果city不存在,则第二个参数应为page。

因此路线变化可以像这样:

head/slug/city //default page 1 if city is not a number, if number then it is page
head/slug/city/10 //e.g page 10
head/slug/10 //no city parameter, because it is number, page 10

是否可以在路由文件中进行这些组合,或者解决此问题的唯一方法是在控制器中编写自己的逻辑?

谢谢。

1 个回复

您可以为同一动作定义两条路线。 一个带城市,一个不带城市。

像这样:

fcr_category_head:
  path: head/{slug}/{page}
  defaults: { _controller: AppBundle:Head:index, slug: "", city: "all", page: 1 }
  requirements: {page: "\d+"}

fcr_category_head_with_city:
  path: head/{slug}/{city}/{page}
  defaults: { _controller: AppBundle:Head:index, slug: "", city: "all", page: 1 }
  requirements: {page: "\d+", city: "\w+"}

首先将像这样捕获所有请求

head/slug/10 
head/slug

第二会抓住

head/slug/city
head/slug/city/10
1 Symfony Routing - 可选参数

我正在创建一个Symfony项目,该项目输出JSON以供iPhone App使用。 我有一个路线设置: 这当前列出了所有通知(我的一个模型)。 我想做的是为此添加一些参数,就像Twitter API有'since_id' - 所以如果请求了/notifications.jso ...

2 Symfony2使用多个可选参数动态路由到一个控制器操作

我仍然是Symfony2的新手,无法解决以下问题。 我在控制器中有一个主要的浏览操作,并定义了以下路由(在控制器中): 上述路由没有问题。 问题是从树枝视图生成URL或查看帮助程序。 我希望能够在视图助手中执行以下操作: 这在routing.yml中可以正常使用 ...

3 Symfony 2路由-可选参数的前缀

要解决的问题 我有一个带有前缀参数的网址。 我出于某些SEO原因而需要它,但我无法创建像foo-5这样的完整子弹。 该网址看起来像这样: /foo-{foo_id}/bar-{bar_id} ,我希望第二个参数栏为可选。 因此,URL /foo-{foo_id}仍然有效。 ...

4 带有可选参数的 Symfony 路由 yml 文件

我试图在 symfony 中路由一个 URL,要匹配的 URL 有 3 个变体 我想用一个控制器来做到这一点,param2 和 param3 是可选参数。 我已经在需求param2 和 param3 中尝试了正则表达式以允许字符串而不是任何内容,但是我无法匹配所有 3 个路径以转到同一个控制器 ...

6 Symfony2路由:两个可选参数 - 至少需要一个参数

我正在尝试在symfony2中为以下模式设置一些路由: 这两个参数都是可选的 - 因此以下方案必须有效: 我根据symfony2 doc设置了routing.yml。 到目前为止,这很有用。 问题是,如果两个参数都缺失或为空,则路由不起作用。 所以 不应该工作 ...

7 如何在动态路由中指定可选参数?

假设我有一个page将显示本书中每一章的详细信息。 用户可以从该页面导航到其他章节,因为屏幕侧边栏中有章节按钮,主要内容显示了章节的详细信息。 现在用户将从书籍列表导航到该页面。 在页面信息中,没有那本书的章节信息。 现在,如果 URL 是\\bookSlug ,那么页面将显示第一章的详细信息, ...

2020-06-28 16:14:36 2 2703   next.js
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM