2016-07-14 3 views
0

나는 어떤 결과 (배열의 결과가 아니라 배열)에 대한 페이지 매김을 시도하는 laravel 5 응용 프로그램이 있습니다. 이 내 코드입니다 :Laravel 5 페이지 매김 링크

$paginator = new LengthAwarePaginator(
$l_aResponse['body'], 
count($l_aResponse['body']), 
'2', 
Paginator::resolveCurrentPage(), 
['path' => Paginator::resolveCurrentPath()] 
); 
return str_replace('/?', '?', $paginator->render()); 

내 질문은 : "페이지"매개 변수 페이지의 URL에 설정되는 방식을 수정하는 방법은 무엇입니까? 예 :이 형식을 원하지 않습니다 : http://localsite/articles/3

답장을 보내 주시면 고맙겠습니다 : http://localsite/articles?page=3. 감사!

+0

이것은 AbstractPaginator 클래스의 url() 메소드에 하드 코드되어있다. 당신이 그것을 열심히한다면 여기를보십시오 : http://stackoverflow.com/a/22442404/3399676 – ClearBoth

답변

0

LengthAwarePaginator 클래스의 __construct() 함수는 몇몇 파라미터 가지고

  • $ 항목
  • $ 총
  • $ perPage
  • $ currentPage = NULL
  • 배열 $ 옵션 = []

fou rth 매개 변수는 현재 페이지를 나타냅니다.

URL의 마지막 매개 변수에서 검색된 맞춤형 원하는 현재 페이지를 사용할 수 있습니다. 예를 들면 다음과 같습니다.

// http://localsite/articles/3 

$currentPage = ... // Get parameter from url 

$paginator = new LengthAwarePaginator(
    $l_aResponse['body'], 
    count($l_aResponse['body']), 
    '2', 
    $currentPage, // Current page as fourth parameter 
    ['path' => Paginator::resolveCurrentPath()] 
); 

return str_replace('/?', '?', $paginator->render()); 

테스트하지 않았습니다. 희망이있다 :

+0

당신의 솔루션에 감사드립니다! 그러나 이렇게하면 페이지 매김 링크를 수정할 수 없으며 링크에는 여전히? page = 1 등이 있습니다. 일종의 매개 변수를 통해이를 제거하고 싶었고 JS 또는 다른 방법을 통해 해당 링크를 간섭 및 수정하고 싶지 않았습니다. – shAkur

+0

나는 이미 그렇게 될 것이라고 생각했다. 어쩌면 당신은''path '=> Paginator :: resolveCurrentPath()'를 가지고 놀아야한다. 아니면 현재의'LenfthAwarePaginator' 클래스를 확장하고'render()'와 같은 메소드를 덮어 쓰는 새로운 paginator 클래스를 만들 수 있습니다. –

관련 문제