我在Laravel上构建了RESTful API。
现在我传递的参数就像 http://www.compute.com/api/GetAPI/1/1
但我想传递参数 http://www.compute.com/api/GetAPI?id=1&page_no=1
有没有办法改变Laravel路线/功能来支持这个?
答案 0 :(得分:1)
您也可以使用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('ApiController@getApi', 'get api', [
'page_no' => $page_no,
'id' => $id
]);
使用这些方法超出预期数量的参数后,其余参数将作为查询字符串添加。
或者你可以使用如下的传统连接: 在routes.php
中创建一条路线Route::get('api/GetAPI', [
'as' => 'get_api', 'uses' => 'ApiController@getApi'
]);
在使用它时会附加这样的查询字符串。你可以使用route方法获取控制器中所需方法的url。我更喜欢行动方法。
$url = action('ApiController@getApi'). '?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
}
答案 1 :(得分:0)
是的,您可以使用这些参数,然后在您的控制器中,您可以使用Request
对象获取其值。
public function index(Request $request) {
if($request->has('page_no')){
$page = $request->input('page_no');
}
// ...
}