2015-09-23 2 views
2

мне нужно иметь 2 Params внутри моего маршрута:Pass 2 PARAMS с Laravel REST API [Laravel 5]

/api/comments/2/?page=2 

Сначала на всю страницу секунды для элементов на этой странице (pagintaion)

I пользователя REST API:

Route::resource('api/comments', 'CommentController'); 

и вот мой контроллер, для шоу-метод, который я могу просто пройти один из параметров, но мне нужно 2:

public function show($id, Comment $comm) 

{

return $comm->apiGetComments($id); 

}

А вот моя модель:

public function apiGetComments($id){ 
    $this->id = $id; 
    if(ctype_digit($id)){ 
    $data = $this->recusative(0); 
    $page = 1; // Get the current page or default to 1, this is what you miss! 
    $perPage = 1; 
    $offset = ($page * $perPage) - $perPage; 
    return new LengthAwarePaginator(array_slice($data, $offset, $perPage, true), count($data), $perPage, $page, ['path' => Request::url(), 'query' => Request::query()]); 
    } 
} 

Когда я так:

localhost/api/comments/1/?page=1 

, а затем изменить страницу

localhost/api/comments/1/?page=2 

ничего не меняет ... У меня только первая ссылка со страницы 1 ... Кто-нибудь может помочь мне решить эту проблему?

ответ

1

Вы устанавливаете переменную page в 1, а не на переменную запроса, которая может присутствовать, - затем вы переходите к LengthAwarePaginator.

Try:

$page = Request::input('page') ?: 1;