laravel 수 동 으로 배열 페이지 를 만 드 는 실현 코드
laravel 페이지 기능:
몇 가지 방법 으로 데 이 터 를 페이지 로 나 눌 수 있다.가장 쉬 운 것 은[검색 어 구조 기]나[Eloquent 조회]에서 paginate 나 simplePaginate 방법 을 사용 하 는 것 입 니 다.
paginate 용법 은 다음 과 같 습 니 다:
//
$users = DB::table('users')->paginate(15);
return view('user.index', ['users' => $users]);
//
{{ $users->links() }}
효 과 는 다음 과 같 습 니 다:"이전 페이지","1","2","3","다음 페이지"
simplePaginate 용법 은 다음 과 같 습 니 다.
//
$users = User::where('votes', '>', 100)->simplePaginate(15);
return view('user.index', compact('users'));
//
{{ $users->links() }}
효 과 는 다음 과 같 습 니 다:"이전 페이지""다음 페이지"
주의:
4.567917.만약 에 페이지 보기 에 간단 한'다음 페이지'와'이전 페이지'의 링크 만 표시 해 야 한다 면 모든 페이지 의 링크 를 표시 하지 않 아 도 되 고 simplePaginate 방법 으로 더욱 효율 적 인 조 회 를 수행 하 는 것 을 추천 합 니 다
이 경우 laravel 배열 로 페이지 를 나 눌 수 있 습 니 다.
사실 laravel 문서 에는 페이지 클래스 를 사용 하여 페이지 를 나 누 는 방법 이 적 혀 있 지만 상세 한 설명 은 없습니다.
수 동 으로 페이지 만 들 기
페이지 인 스 턴 스 를 수 동 으로 만 들 고 최종 적 으로 배열 형식의 결 과 를 얻 으 려 면 필요 에 따라 Illuminate Pagination Paginator 나 Illuminate Pagination LengthAwarePaginator 인 스 턴 스 를 만 들 수 있 습 니 다.
구체 적 으로 Illuminate Pagination LengthAware Paginator 의 이 코드 를 볼 수 있 습 니 다.
public function __construct($items, $total, $perPage, $currentPage = null, array $options = [])
{
foreach ($options as $key => $value) {
$this->{$key} = $value;
}
$this->total = $total;
$this->perPage = $perPage;
$this->lastPage = max((int) ceil($total / $perPage), 1);
$this->path = $this->path !== '/' ? rtrim($this->path, '/') : $this->path;
$this->currentPage = $this->setCurrentPage($currentPage, $this->pageName);
$this->items = $items instanceof Collection ? $items : Collection::make($items);
}
다음은 구체 적 인 실현 코드 입 니 다.
//
public function index(LiveService $liveService, Request $request)
{
// A
$dataA = User::where('status', 1)->get()->toArray();
// B
$dataB = User::where('status', 2)->get()->toArray();
$data = array_merge($dataA, $dataB);
// 1
$page = $request->page ?: 1;
//
$perPage = 4;
//
$offset = ($page * $perPage) - $perPage;
// LengthAwarePaginator ,
$data = new LengthAwarePaginator(array_slice($data, $offset, $perPage, true), count($data), $perPage,
$page, ['path' => $request->url(), 'query' => $request->query()]);
return view('admin.users.index', compact('data'));
}
//
{{ $data->links() }}
이상 은 기본적으로 배열 페이지 를 완 성 했 습 니 다.대체적으로 절 차 는 컨트롤 러 가 현재 페이지 수 를 얻 는 것 입 니 다.예화LengthAwarePaginator
필요 한 매개 변 수 를 입력 하고 각 페이지 의 항목 수 에 따라 array 를 이용 합 니 다.slice()방법 은 각 페이지 에 표시 할 데 이 터 를 가 져 옵 니 다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.