我有基於Laravel構建的RESTful API。Laravel - 使用GET更改URL參數
現在我傳遞參數一樣 http://www.compute.com/api/GetAPI/1/1
,但我想通過參數一樣 http://www.compute.com/api/GetAPI?id=1&page_no=1
有沒有辦法來改變Laravel路由/功能支持呢?
我有基於Laravel構建的RESTful API。Laravel - 使用GET更改URL參數
現在我傳遞參數一樣 http://www.compute.com/api/GetAPI/1/1
,但我想通過參數一樣 http://www.compute.com/api/GetAPI?id=1&page_no=1
有沒有辦法來改變Laravel路由/功能支持呢?
您也可以使用link_to_route()和link_to_action()方法。 (source)
link_to_route取三個參數(名稱,標題和參數)。你可以使用它像以下:
link_to_route('api.GetAPI', 'get api', [
'page_no' => $page_no,
'id' => $id
]);
如果你想使用一個動作,link_to_action()非常相似,但它使用的動作名稱而不是路線。
link_to_action('[email protected]', 'get api', [
'page_no' => $page_no,
'id' => $id
]);
使用這些方法的任何超出的參數預計數後,其餘的參數將作爲查詢字符串。
或者你也可以使用傳統的concatination類似以下內容: ,而使用它追加查詢字符串,這樣創建routes.php文件
Route::get('api/GetAPI', [
'as' => 'get_api', 'uses' => '[email protected]'
]);
的路線。您可以使用路由方法獲取控制器中所需方法的url。我更喜歡行動方法。
$url = action('[email protected]'). '?id=1&page_no=1';
並在您的控制器中通過以下方法訪問這些變量。
public function getApi(Request $request) {
if($request->has('page_no')){
$page = $request->input('page_no');
}
// ...your stuff
}
或者通過輸入類
public function getApi() {
if(Input::get('page_no')){
$page = Input::get('page_no');
}
// ...your stuff
}
是的,您可以使用這些參數,然後在您的控制器中,您可以使用Request
對象獲取它們的值。
public function index(Request $request) {
if($request->has('page_no')){
$page = $request->input('page_no');
}
// ...
}