Laravel - 使用GET更改URL参数

时间:2016-08-04 07:35:29

标签: laravel

我在Laravel上构建了RESTful API。

现在我传递的参数就像 http://www.compute.com/api/GetAPI/1/1

但我想传递参数 http://www.compute.com/api/GetAPI?id=1&page_no=1

有没有办法改变Laravel路线/功能来支持这个?

2 个答案:

答案 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
]);

href text

使用这些方法超出预期数量的参数后,其余参数将作为查询字符串添加。

或者你可以使用如下的传统连接: 在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');
    }

    // ...
}