티스토리 뷰
제공해 주는 페이지네이션은 쿼리빌더 상태에서만 쓸수있짜나 ㅠㅠ
그리고 우리 스트릭모드 다 맞추고 있어서 그냥 함부로 groupBy써서 중복제거 하는거 안쓰는게 더 편하다......
난 요고조고 가져와서 조합해서 페이지네이션 하고 싶다구 ㅠㅠ
그러니까,
컬렉션 단위 페이지네이션이 필요하고요,
요기에서 이어짐. ㅇㅇ
/**
* collection을 페이지네이션.
*
* @param $items
* @param int $perPage
* @param null $page
* @param array $options
*
* @return LengthAwarePaginator
*/
public function paginate($items, $perPage = 30, $page = null, $options = [])
{
$page = $page ?: (Paginator::resolveCurrentPage() ?: 1);
$items = $items instanceof Collection ? $items : Collection::make($items);
return new LengthAwarePaginator($items->forPage($page, $perPage), $items->count(), $perPage, $page, $options);
}
그래서 제일 간단한 코드로 들고 옴.
스택오버플로표.
보기에도 간단한게 그냥 페이지 있으면 놔두고 없으면 현재페이지 가르키는 포인터가 있는지 체크해서 없으면 0, 있으면 그거 쓰고.
컬렉션인가 체크하고, 아니면 컬렉션타입으로 만들어주고,
수동 페이지네이터 ㄱㄱ
이제 직접 사용하는 컨트롤러 안에서 이것저것 조합해서 콜렉션으로 뽑아내고, 사용하면 된당.
$curationJobs = $query->get()->unique('job_id');
$curationJobs = $this->paginate($curationJobs, get_per_page());
$curationJobs->withPath('/curations/'.$name);
여기서 포인트는 막줄임.
만약 path안주고 그냥 사용하면 기본 APP_URI로 설정한 url root에서 ?page=2이런식으로 들어간다.
dev.l7.com/?page=2 이런식.
그래서 패스를 줘야한다.
저렇게 주면 제대로 dev.l7.com/curations/intern?page=2이런식으로 잘 들어감.
이걸로 한참 고민했더랜다. 하지만 답은 메뉴얼에 있는 것이었다 ㅠㅠㅠㅠ
https://laravel.com/docs/7.x/pagination#displaying-pagination-results
Database: Pagination - Laravel - The PHP Framework For Web Artisans
laravel.com
Customizing The Paginator URI부분이당.
난 왜 몰랐을까아~?
이제부터 알면 됐지!
'Laravel' 카테고리의 다른 글
[Laravel 8] GraphQL을 적용해보자. (0) | 2021.04.23 |
---|---|
Syntax error or access violation: 1071 Specified key was too long; (0) | 2020.09.10 |
라라벨7.0 생텀 spa (1) | 2020.09.07 |
검색시 공백 오류 (0) | 2020.07.15 |
purifier로 youtube를 허용해보자. (0) | 2020.04.28 |
- Total
- Today
- Yesterday
- 엘라스틱서치한글성공!
- gcp
- Testing
- twoseven.kr/0410
- UTF8
- 프로그래밍은디버거부터시작이다
- 테스팅
- 더미데이터도유형이있어요
- 테스팅환경
- 배열을_이쁘게
- JSON으로도
- fmf
- xml로도
- PhpStorm
- twoserven.kr/0410
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |