我使用Laravel構建了一個RESTful API。我很困惑如何做路由。具有多個可選參數的Laravel路線
我有以下API控制器
class APIController extends BaseController{
public function sendMsg($authid, $roomid, $msg){
}
public function getMsg($roomid, $timestamp){
}
}
的URL格式我想這是訪問看起來像這樣: http://example.com/api/{functionName}/{parameter1}/{parameter2}/.../
在這裏,第一個參數,我將有功能名稱應該映射到控制器類中的功能,並且跟隨控制器所需的參數。
例如
要訪問sendMsg()
功能,URL應該是這樣的:
http://example.com/api/sendMsg/sdf879s8/2/hi+there+whats+up
要訪問getMsg()
功能,URL應該像 http://example.com/api/getMsg/2/1395796678
所以...我怎麼寫我的路線,以便它可以處理動態數字和不同的參數需要?
我可以寫爲每個功能名稱的一個途徑,像這樣:
Route::get('/api/sendmsg/{authid}/{msg}', function($authid, $msg){
//call function...
});
和同爲其他功能。這個如果很好,但是是否有一種方法可以將所有功能與APIController結合在一個路徑中?
你的答案很有趣,但它不回答我的問題,我的問題是如何將未定義的一組參數映射到函數。像function1需要3個參數,而function2需要5個參數。我怎麼做? – Krimson
你可以使用'api/{param1?}/{param2?}'這些將是可選的,你的函數必須爲每個參數使用默認值,比如'function f($ p1 = null,$ p2 = null)'你要求什麼? –
那麼,這可能會工作,但說如果我有4個功能,每個有4個獨特的參數,那將是16個參數!也許我之前並不清楚,是否有一個函數可以獲取關聯數組中的所有參數或沿着這些行的某個參數? – Krimson