@props(['query', 'columns', 'buttons']) @php use Hekmatinasser\Verta\Verta; $sort = request('sort', 'id'); $dir = request('dir', 'desc'); $length = request('length', 15); $builder = clone $query; // فیلتر ستون‌ها foreach ($columns as $col) { $field = $col['field']; if ($value = request("filter.$field")) { if (($col['search'] ?? null) === 'date') { $gregorian = Verta::parse($value)->datetime(); $builder->whereDate($field, $gregorian); } elseif (($col['search'] ?? null) === 'select') { $builder->where($field, $value); } else { $builder->where($field, 'like', "%{$value}%"); } } } $builder->orderBy($sort, $dir); $items = $builder->paginate($length)->appends(request()->query()); $invert = $dir === 'asc' ? 'desc' : 'asc'; @endphp @section('external_css') @endsection
{{-- انتخاب تعداد رکورد --}} {{-- ستون‌ها --}}
@foreach($columns as $col) @endforeach @if($buttons) @endif {{-- فیلتر ستون‌ها --}} @foreach($columns as $col) @endforeach @foreach($items as $key => $item) @foreach($columns as $col) @endforeach @if($buttons) @endif @endforeach
# {{ $col['label'] }}
@php $type = $col['search'] ?? 'text'; @endphp @if($type === 'select') @elseif($type === 'date') @else @endif
{{ ++$key }} @if($col['field']=='row_number') {{ ($items->currentPage()-1)*$items->perPage() + $loop->iteration }} @elseif(isset($col['render']) && is_callable($col['render'])) {!! $col['render']($item) !!} @else {{ data_get($item, $col['field']) }} @endif {!! $buttons['render']($item) !!}
@section('external_scripts') @endsection @push('internal_scripts') @endpush