수색…
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을 수정하십시오.