[Laravel] column-sortable
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());