수색…


Laravel의 페이지 매김

다른 프레임 워크에서는 페이지 매김이 두통입니다. Laravel을 사용하면 컨트롤러와 뷰에 몇 줄의 코드를 추가하여 페이지 매김을 생성 할 수 있습니다.

기본 사용법

항목을 페이지 매기기하는 데는 여러 가지 방법이 있지만 가장 간단한 방법은 쿼리 작성기 또는 Eloquent 쿼리 에서 페이지 매김 메서드를 사용하는 것입니다. Laravel은 사용자가 볼 수있는 현재 페이지를 기반으로 한도 및 오프셋을 설정합니다. 기본적으로 현재 페이지는 HTTP 요청에서? page query string 인수의 값으로 감지됩니다. 그리고 확실히이 값은 Laravel에 의해 자동으로 감지되고 페이지 매김 기가 생성 한 링크에 삽입됩니다.

이제 쿼리에서 paginate 메서드를 호출한다고 가정 해 봅시다. 이 예제에서 paginate에 전달 된 인수는 "페이지 당"표시하려는 항목의 수입니다. 우리의 경우, 페이지 당 10 개의 항목을 표시한다고 가정합시다.

<?php

namespace App\Http\Controllers;

use DB;
use App\Http\Controllers\Controller;

class UserController extends Controller
{
    /**
     * Show all of the users for the application.
     *
     * @return Response
     */
    public function index()
    {
        $users = DB::table('users')->paginate(10);

        return view('user.index', ['users' => $users]);
    }
}

참고 : 현재 groupBy 문을 사용하는 페이지 매김 작업은 groupBy 효율적으로 실행할 수 없습니다. 페이지 된 결과 집합과 함께 groupBy 를 사용해야하는 경우 데이터베이스를 쿼리하고 수동으로 페이지 매 개 변수를 만드는 것이 좋습니다.

간단한 페이지 매김

페이지 매김보기에 다음 및 이전 링크 만 표시한다고 가정 해 보겠습니다. Laravel은 simplePaginate 메서드를 사용 simplePaginate 옵션을 제공합니다.

$users = DB::table('users')->simplePaginate(10);

보기에서 결과 표시

이제 뷰에서 페이지 매김을 표시 할 수 있습니다. 사실 simplePaginate 질의에 대해 paginate 또는 simplePaginate 메서드를 호출하면 paginator 인스턴스가 수신됩니다. paginate 메서드가 호출되면 Illuminate\Pagination\LengthAwarePaginator 인스턴스를 받고, simplePaginate 메서드를 호출하면 Illuminate\Pagination\Paginator 인스턴스를 Illuminate\Pagination\Paginator . 이러한 인스턴스 / 개체에는 결과 집합을 설명하는 몇 가지 메서드가 있습니다. 또한이 헬퍼 메소드 외에도 페이징 기 인스턴스는 반복자이며 배열로 반복 될 수 있습니다.

결과를 받으면 블레이드를 사용하여 페이지 링크를 쉽게 렌더링 할 수 있습니다.

<div class="container">
    @foreach ($users as $user)
        {{ $user->name }}
    @endforeach
</div>

{{ $users->links() }}

links 메소드는 결과 세트의 다른 페이지에 대한 링크를 자동으로 렌더링합니다. 이러한 각 링크에는 특정 페이지 번호, 즉 ?page 질의 문자열 변수가 포함됩니다. links 메소드에 의해 생성 된 HTML은 Bootstrap CSS 프레임 워크 와 완벽하게 호환됩니다 .

페이지 매김보기 변경하기

laravel 페이지 매김을 사용하는 동안 당신은 자신의 커스텀 뷰를 자유롭게 사용할 수 있습니다. 따라서, 페이징 기 인스턴스의 링크 메소드를 호출 할 때, 뷰 이름을 메소드의 첫 번째 인수로 전달하십시오.

{{ $paginator->links('view.name') }}

또는

페이지 매김보기를 사용자 정의하려면 vendor : publish 명령을 사용하여 resources/views/vendor 디렉토리로 내보낼 수 있습니다.

php artisan vendor:publish --tag=laravel-pagination

이 명령은 resources/views/vendor/pagination 디렉토리에보기를 배치합니다. 이 디렉토리 내의 default.blade.php 파일은 기본 페이지 매김보기에 해당합니다. 이 파일을 편집하여 페이지 매김의 HTML을 수정하십시오.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow