User Model
public function scopeSearch($query, $q)
{
if ($q == null) return $query;
return $query
->where('user_name', 'LIKE', "%{$q}%")
->orWhere('name', 'LIKE', "%{$q}%")
->orWhere('surname', 'LIKE', "%{$q}%");
}
User Control
public function index(Request $request)
{
$orderBy = 'asc';
$perPage = 20;
$sortBy = 'id';
$q = null;
if ($request->has('orderBy')) $orderBy = $request->query('orderBy');
if ($request->has('perPage')) $perPage = $request->query('perPage');
if ($request->has('sortBy')) $sortBy = $request->query('sortBy');
if ($request->has('q')) $q = $request->query('q');
$users = User::search($q)->orderBy($sortBy, $orderBy)->paginate($perPage);
return view('dashboard.users.list', compact('users', 'orderBy', 'perPage', 'sortBy', 'q'));
}
User List Page
@extends('layouts.dashboard', ['activePage' => 'users', 'moduleName' => 'Kullanıcı Listesi'])
@section('content')
<div class="card mx-3 mt-two card-out">
<div class="card-header">
<div class="row">
<div class="col-sm-6 align-items-center d-flex title">
<h6 class="mb-0">Kullanıcı Listesi</h6>
</div>
<div class="col-sm-6 text-end">
<a class="btn" role="button">
<i class="fas fa-plus text-white" data-bs-toggle="tooltip" data-bs-placement="top" title="YENİ KAYIT"></i>
</a>
<div class="btn-group dropstart">
{!! Form::button('<i class="fas fa-filter text-white" data-bs-toggle="tooltip" data-bs-placement="top" title="FİLTRE" data-bs-toggle="dropdown" aria-expanded="false"></i>', ['type' => 'submit', 'class' => 'btn dropdown-toggle', 'data-bs-toggle' => 'dropdown', 'aria-expanded' => 'false']) !!}
<ul class="dropdown-menu">
{!! Form::open(['route' => 'users.index', 'method'=>'GET']) !!}
<li>
<a class="dropdown-item" href="#">
<div class="row">
<div class="col-sm-5 justify-content-end align-items-center d-flex">
<h6> {!! Form::label('q', 'Ara:', ['class' => 'control-label']) !!}</h6>
</div>
<div class="col-sm-7 ps-sm-0">
{!! Form::text('q', old('q'), ['class' => 'form-control form-control-sm', 'autocomplete'=>'off', 'placeholder' => 'Ara..']) !!}
</select>
</div>
</div>
</a>
</li>
<li>
<a class="dropdown-item" href="#">
<div class="row">
<div class="col-sm-5 justify-content-end align-items-center d-flex">
<h6>{!! Form::label('sortBy', 'Sırala:', ['class' => 'control-label']) !!}</h6>
</div>
<div class="col-sm-7 ps-sm-0">
{!! Form::select('sortBy', ['user_name' => 'Kullanıcı Adı', 'name' => 'İsim', 'surname' => 'Soyad'], old('sortBy'), ['class' => 'form-control']) !!}
</select>
</div>
</div>
</a>
</li>
<li>
<a class="dropdown-item" href="#">
<div class="row">
<div class="col-sm-5 justify-content-end align-items-center d-flex">
<h6>{!! Form::label('orderBy', 'Listele:', ['class' => 'control-label']) !!}</h6>
</div>
<div class="col-sm-7 ps-sm-0">
{!! Form::select('orderBy', ['asc' => 'A-Z', 'desc' => 'Z-A'], old('orderBy'), ['class' => 'form-control']) !!}
</div>
</div>
</a>
</li>
<li>
<a class="dropdown-item" href="#">
<div class="row">
<div class="col-sm-5 justify-content-end align-items-center d-flex">
<h6>{!! Form::label('perPage', 'Göster:', ['class' => 'control-label']) !!}</h6>
</div>
<div class="col-sm-7 ps-sm-0">
{!! Form::select('perPage', ['20' => '20', '50' => '50', '100' => '100', '250' => '250'], old('perPage'), ['class' => 'form-control']) !!}
</div>
</div>
</a>
</li>
<li>
<a class="dropdown-item" href="#">
<div class="row">
<div class="col-sm-12">
<div class="d-grid gap-2">
{!! Form::button('<i class="fas fa-search text-blue" data-bs-toggle="tooltip" data-bs-placement="top" title="ARA"></i> ARA', ['type' => 'submit', 'class' => 'save btn btn-light']) !!}
</div>
</div>
</div>
</a>
</li>
{!! Form::close() !!}
</ul>
</div>
<a href="/users" class="btn" role="button">
<i class="fas fa-eraser text-white" data-bs-toggle="tooltip" data-bs-placement="top" title="TEMİZLE"></i>
</a>
</div>
</div>
</div>
<div class="card-body py-0">
<div class="row">
<table class="table mb-0">
<thead>
<tr>
<th class="fixed">#</th>
<th class="fixed">Kullanıcı Adı</th>
<th class="fixed">Ad</th>
<th class="fixed">Soyad</th>
<th class="text-center fixed">İşlem</th>
</tr>
</thead>
<tbody>
@forelse ($users as $user)
<tr>
<td class="fixed">{{ $loop->iteration }}</td>
<td class="fixed">{{ $user->user_name}}</td>
<td class="fixed">{{ $user->name}}</td>
<td class="fixed">{{ $user->surname}}</td>
<td class="text-center fixed">
<div class="btn-group dropstart">
{!! Form::button('İşlemler', ['type' => 'submit', 'class' => 'btn btn-red dropdown-toggle', 'data-bs-toggle' => 'dropdown', 'aria-expanded' => 'false']) !!}
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="{{ route('users.edit', $user->private_key) }}"><h6>Düzenle</h6></a></li>
<li><a class="dropdown-item" href="#"><h6>Sil</h6></a></li>
</ul>
</div>
</td>
</tr>
@empty
<tr>
<td class="fixed">-</td>
<td class="fixed">-</td>
<td class="fixed">-</td>
<td class="fixed">-</td>
<td class="text-center fixed">-</td>
</tr>
@endforelse
</tbody>
</table>
</div>
</div>
<div class="card-footer justify-content-center d-flex">
<i class="fas fa-database list" data-bs-toggle="tooltip" data-bs-placement="right" title="KAYIT SAYISI">{{ $users->count() ?? 0 }}</i>
{{ $users->links('dashboard.partials.content.pagination') }}
</div>
</div>
@endsection
Pagination Partial
@if ($paginator->hasPages())
<ul class="pagination">
@if ($paginator->onFirstPage())
<li class="page-item"><span class="page-link"><i class="fas fa-chevron-left"></i></span></li>
@else
<li><a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev"><i class="fas fa-chevron-left"></i></a></li>
@endif
@foreach ($elements as $element)
@if (is_string($element))
<li class="page-item"><span class="page-link">{{ $element }}</span></li>
@endif
@if (is_array($element))
@foreach ($element as $page => $url)
@if ($page == $paginator->currentPage())
<li class="active my-active"><span class="page-link">{{ $page }}</span></li>
@else
<li><a class="page-link" href="{{ $url }}">{{ $page }}</a></li>
@endif
@endforeach
@endif
@endforeach
@if ($paginator->hasMorePages())
<li><a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next"><i class="fas fa-chevron-right"></i></a></li>
@else
<li class="page-item"><span class="page-link"><i class="fas fa-chevron-right"></i></span></li>
@endif
</ul>
@endif