[Laravel] column-sortable

[Laravel] column-sortable updated_at: 2024-02-14 14:46

column-sortable

데이타 컬럼을 정렬하기 위한 패키지

공식문서

install

composer require kyslik/column-sortable

column-sortable 을 사용하기위해서는 model에서 sortable을 정의하고 blade에서 규약에 마추어 적용하면 된다.

Model에서 정의하기

정렬하기를 원하는 필드를 $sortable에 정의해 둔다.

use Illuminate\Database\Eloquent\Model;
use Kyslik\ColumnSortable\Sortable;

class User extends Model
{
  ...
  use Sortable;
  public $sortable = ['id', 'name', 'email', 'created_at', 'updated_at'];
  ...
}

Blade 에서 적용하기

@sortablelink('column', 'Title', ['parameter' => 'smile'],  ['rel' => 'nofollow'])
@sortablelink('name')
@sortablelink('name', 'Username')
@sortablelink('address', trans('fields.address'), ['filter' => 'active, visible'])
@sortablelink('address', trans('fields.address'), ['filter' => 'active, visible'], ['class' => 'btn btn-block', 'rel' => 'nofollow', 'href' => route('my.custom.route')])
<thead>
  <tr>
      <th class="text-center">
          @sortablelink('id',  'Id', ['page' => $users->currentPage()])
      </th>
      <th class="text-center">
          @sortablelink('email',  '이메일', ['page' => $users->currentPage()])
      </th>
      <th class="text-center">
          @sortablelink('name',  '회원명',['page' => $users->currentPage()])
      </th>
  </tr>
</thead>

Controller

sortable 을 이용하여 기본 sorting을 처리한다.

$users = $users->withTrashed()->sortable('id', 'desc')->paginate(20)->appends(request()->query());
평점을 남겨주세요
평점 : 5.0
총 투표수 : 1

질문 및 답글