2016-09-22 115 views
0

我是新来的PHP,我正在使用Slim Framework来开发一个简单的Rest Api。Slim Framework可选Params路线

根据文档,Slim使用FastRoute

我有一个可选的PARAMS(供应商和数量),像这样的路线:

path/items/{id}/{name}/{price}[/{vendor}[/{quantity}]] 

的问题是,如果我离开厂商空白的值变为供应商和数量不会变得充实。我明白,通过快速路线我无法做到这一点。但是,我该怎么做呢?

  1. 我可以使用快速路线吗?
  2. 我可以用Slim做到吗?
  3. 是否有另一个框架,我可以实现我想要的?
  4. 我应该只使用查询字符串吗? (我认为这是答案,但我需要来自具有更多知识的人的帮助)。

谢谢。

+0

我猜数量值总是数字?那供应商不是?或者是卖方值ID?如果两者都可以包含相同的数据类型(字符串或整数),那么它不能按照您尝试的方式完成。路由器不可能知道某个值(比方说10)是供应商ID还是数量。为什么不总是发送供应商?或者说,你为什么需要URL中的所有信息?你难道不能从第一个ID中获得? –

+0

所以,我不能这样做,因为它是一个ID。我怎样才能通过这些参数?你能给我一个例子/链接吗?谢谢 – Alan

+0

我的意思是,如果我会添加一个新的项目与可选参数。我该怎么做? – Alan

回答

1

如果您打算使用可选参数,这些参数的类型相同并且可以按任意顺序发送,则可以使用查询字符串,或者使用固定格式添加0而不是忽略它。例如其中“供应商”未设置:

/10/somename/15/0/12 

然后参数是不可选的URL /路线,但你可以处理,在您的控制器来代替,只是忽略他们,如果该参数是一个零。