2016-09-22 86 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 /路線,但你可以處理,在您的控制器來代替,只是忽略他們,如果該參數是一個零。