【Laravel 독자 페이지 네이션을 작성하는 방법】
목적
S3의 이미지를 나열하고 싶습니다.
흐름
S3에 있는 오브젝트 URL을 보존하고 있는 DB로부터 배열로 오브젝트 URL을 취득→그 배열을 페이지네이션한다.
# LengthAwarePaginator 클래스를 사용할 때는 직접 배열이나 컬렉션을 나누어야합니다. 배열이라면 array_slice, 컬렉션이라면 forpage 등.
1. 블레이드로 표시할 준비
· 페이지 네이션 된 배열을 돌려 s3에 저장된 이미지를 나열합니다.
<div class="container">
@foreach ($s3ImgUrls as $objectrl)
<img src="https://S3バケット名.s3-リージョン名.amazonaws.com/{{ $objectUrl }}" >
@endforeach
</div>
{{ $s3imgUrls->links('vendor/pagination/semantic-ui') }}
links()
에서는, 이하의 커멘드로 생성된 view/vender/pagination내의 몇개의 몇개의 blade의 하나를 지정하고 있다.php artisan vendor:publish --tag=laravel-pagination
2. 블레이드로 표시할 페이지화된 $s3imgUrls 를 생성한다.
포인트는, 요구된 페이지수에 의해
array_slice()
로 잘라내는 범위를 바꾸고 있는 곳.$array = //独自ペジネータ配列の全体像
$display_limit = 3
$arrayOfNum = ((int)($request->page ?? 1) - 1) * $display_limit;
$sliced_items = array_slice($array, $arrayOfNum, $display_limit);
$s3ImgUrls = new LengthAwarePaginator(
$sliced_items, // 現在のページのsliceした情報(items)
count($array), // 総件数(total)
$display_limit, // 1ページに表示される数 (perPage)
$currentPage, // 現在のページ(ページャーの色がActiveになる)(currentPage)
['path' => $url] // ページャーのリンクを指定
);
3. 블레이드 CSS를 정돈.
다음과 같은 페이지네이션을 만들 수 있다.
Reference
이 문제에 관하여(【Laravel 독자 페이지 네이션을 작성하는 방법】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Ueken3pei/items/d97f458c7223300321bd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)