OVERCODE

XE3 게시판에 순번 추가하기 (Laravel Eloquent Result 순번 추가) 본문

프로그래밍/XE

XE3 게시판에 순번 추가하기 (Laravel Eloquent Result 순번 추가)

오버코드 2021. 3. 16. 14:05

XE3의 게시판에는 순번을 나타내는 필드가 없다.

 

해당 필드는 Eloquent 조회를 할 때 추가해야한다.

XE3 의 Board 플러그인의 BoardService.php 를 수정하여 순번을 붙일수 있다.

해당 내용을 자신이 만드는 Plugin 에 응용하여 사용 할 수 있다.

 

BoardService.php -> getItems()

179번 라인

$paginate = $query->paginate($config->get('perPage'))->appends($request->except('page'));
return $paginate;

이 부분이 paginate 를 하는 부분이다.

여기 사이에 아래의 소스를 참고하여 순번을 붙이는 작업을 해준다.

 

$paginate = $query->paginate($config->get('perPage'))->appends($request->except('page'));
        
$total = $paginate->total();
$perPage = $paginate->perPage();
$currentPage = $paginate->currentPage();
$count = 0;

// seq 라는 순번 필드를 추가
$paginate->getCollection()->transform(function ($paginate) use ($total, $perPage, $currentPage, &$count) {
    $paginate->seq = ($total - ($perPage * ($currentPage - 1))) - $count;
    $count++;
    return $paginate;
});

return $paginate;

위의 소스는 seq 라는 순번 필드를 추가하는 코드가 추가된 모습이다.

 

저 코드가 추가된 이후부터는 게시판의 스킨에서 {{ $item->seq }} 이런식으로 불러서 사용 할 수 있다.


Comments