Web Application에서 게시판이나 상품리스트와 같이 정렬이 존재하고,
페이지를 넘겨야하는 경우가 있는데, 이 때 pagination을 사용한다.


라이브러리(ex. Pagination.js) 도 존재하지만 직접 코딩할 때 필요한 limit offset, count를 포스팅하겠다.

 

Pagination.js | Home

 

pagination.js.org

 

Mysql 에서 limit를 사용할때 보통은 1개의 인자만 입력하여 최대 n개 를 가져오게 한다.

select * from tableName ~ limit 10;

 

그런데 pagination을 적용할 때에는 limit n 으로 전부 처리할 수가 없다.
페이지가 분할되어 출력되어야 하기 때문이다. 

그래서 limt n, k ; 를 사용하는데,

select * from tableName ~ limit 행의 수(offset),  출력할 컬럼 수;

//예시 
select * from tableName ~ limit 3, 4
// 0,1,2,3번째 행부터 4개 출력

 

column_no id
3 id_three
4 id_four
5 id_five
6 id_six

 

이렇게 사용한다.

offset 기본적으로는 0으로 처리되며,

설정하지 않을 경우 그냥 자동으로 0 처리가 된다. 

즉, 평소에 offset을 제공하지 않고 limit을 사용한 경우, offset이 0이 자동생략되었다는 것이다.

 

반응형

안녕하세요 상훈입니다. 

라라벨에서 게시글의 페이징 처리하는 방법에 대해 포스팅하겠습니다.

먼저, ui 설정하고, 진행하겠습니다. [ 이미 하신 분들은 건너뛰어도 무방합니다. ] 

$ composer require laravel/ui
$ php artisan ui bootstrap
$ npm install & npm run dev

 


 

1. Route
2. Controller
3. view

 

1. Route

Route::get('/', function () {
    $posts = Post::paginate(1);
    return view('home', compact('posts'));
});

 - table:posts의 데이터를 home.blade.php 경로로 보내준다고 선언합니다.

 

2. Controller

 - 컨트롤러에서는 바로 home.blade.view를 return 시켜줍니다.

 public function index()    {        
     return view('home');    
 }

 

3. View

<div class="card">
  <div class="card-body">
    @foreach($posts as $post)
      <p>{{ $post->title }}</p>
      <p>{{ $post->description }}</p>
    @endforeach
  </div>
  {{ $posts->links() }}
</div>

 

 

결과물

아무래도 bootstrap의 css를 끌어오지 못한 것 같다,,

 

 

 

 

반응형

+ Recent posts