>PHP 프레임워크 >Laravel >스타일 없이 라라벨 페이지 매김을 해결하는 방법

스타일 없이 라라벨 페이지 매김을 해결하는 방법

PHPz
PHPz원래의
2023-04-09 09:30:02742검색

Laravel은 개발자가 고품질 웹 애플리케이션을 쉽게 구축할 수 있도록 수많은 편리한 기능과 도구를 제공하는 매우 인기 있는 최신 개발 프레임워크입니다. 일반적인 기능 중 하나는 페이징입니다. Laravel에는 편리한 페이징 도구도 내장되어 있지만 많은 개발자는 페이징 스타일이 누락되는 문제에 직면합니다. 이 기사에서는 이 문제를 해결하는 방법을 설명합니다.

Laravel의 페이징 기능을 사용하려면 쿼리 빌더나 Eloquent 모델 객체를 통해 페이징 쿼리를 수행할 수 있습니다. 예를 들어 다음 코드를 사용하면 모든 사용자 데이터를 쿼리하고 이를 페이징에 표시할 수 있습니다.

use Illuminate\Support\Facades\DB;
use App\Models\User;

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

// 或者可以使用Eloquent模型对象进行分页查询

$users = User::paginate(10);

위 코드를 통해 현재 페이징 사용자 데이터, 페이징 관련 링크 및 기타 정보가 포함된 페이징 개체 $users를 얻을 수 있습니다. 페이징 속성. 기본적으로 Laravel의 페이징 도구에는 bootstrap과 semantic-ui라는 두 가지 페이징 스타일 세트가 내장되어 있습니다.

그러나 자신이 정의한 CSS 스타일과 같은 다른 페이징 스타일을 사용하려면 사용자 정의 구성을 수행해야 합니다.

먼저, 사용자 정의된 페이징 스타일의 템플릿 역할을 할 보기 파일을 만들어야 합니다. resources/views/vendor/pagination/ 디렉토리에 새로운 템플릿 파일 pagination.blade.php를 생성할 수 있습니다. 그런 다음 이 파일에 필요한 HTML 및 CSS 스타일을 작성할 수 있습니다. 다음은 간단한 예입니다:

<div class="pagination-style">
   <ul class="pagination">

       {{-- Previous Page Link --}}
       @if ($paginator->onFirstPage())
           <li class="disabled"><span>&laquo;</span></li>
       @else
           <li><a href="{{ $paginator->previousPageUrl() }}" rel="prev">&laquo;</a></li>
       @endif

       {{-- Next Page Link --}}
       @if ($paginator->hasMorePages())
           <li><a href="{{ $paginator->nextPageUrl() }}" rel="next">&raquo;</a></li>
       @else
           <li class="disabled"><span>&raquo;</span></li>
       @endif

       {{-- Pagination Elements --}}
       @foreach ($elements as $element)
           {{-- "Three Dots" Separator --}}
           @if (is_string($element))
               <li class="disabled"><span>{{ $element }}</span></li>
           @endif

           {{-- Array Of Links --}}
           @if (is_array($element))
               @foreach ($element as $page => $url)
                   @if ($page == $paginator->currentPage())
                       <li class="active"><span>{{ $page }}</span></li>
                   @else
                       <li><a href="{{ $url }}">{{ $page }}</a></li>
                   @endif
               @endforeach
           @endif
       @endforeach
   </ul>
</div>

위 코드에서 우리는 Bootstrap 스타일을 기반으로 자체 CSS 스타일을 정의하고 Laravel의 기본 페이지 매김 템플릿을 재정의합니다. 구체적인 구현 세부 사항은 다음과 같습니다.

  1. $paginator->previousPageUrl() 및 $paginator->nextPageUrl()을 통해 페이지 매김 링크를 가져와 HTML로 렌더링합니다.
  2. $is_string()을 사용하여 현재 요소가 목록에서 페이지 매김 "..." 구분 기호를 사용하여 해당 렌더링을 수행합니다.
  3. $is_array()를 사용하여 현재 요소가 페이징 목록의 페이지 번호 링크인지 확인하고 해당 렌더링을 수행합니다.

다음으로, Laravel에 맞춤형 페이지 매김 템플릿을 사용하고 싶다고 알려야 합니다. /config/view.php에 새 구성 항목을 추가할 수 있습니다:

'pagination' => 'vendor.pagination.pagination'

여기서 Vendor.pagination.pagination은 방금 생성한 페이징 템플릿 파일의 경로를 나타냅니다.

마지막으로, 뷰 파일에서 다음과 같은 방법으로 사용자 정의된 페이징 템플릿을 호출할 수 있습니다:

{{ $users->links('vendor.pagination.pagination') }}

위 단계를 통해 Laravel에서 고유한 페이징 스타일을 사용자 정의할 수 있습니다. 물론, 보다 풍부한 페이징 스타일을 구현하려면 Laravel의 페이징 기능을 확장하면 됩니다.

위 내용은 스타일 없이 라라벨 페이지 매김을 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.