En el Controlador:
use Illuminate\Pagination\Paginator;
Para usar la platilla AdminLTE 3 se deben descargar las diferentes plantillas con:
php artisan vendor:publish --tag=laravel-pagination
Las vistas se descargan en:
app/resources/views/vendor/pagination/
En la vista para los links del paginador se usa:
<div class="card-footer clearfix">
{{ $users->onEachSide(1)->links('vendor.pagination.bootstrap-4') }}
</div>
Todo esto esta en la documentación de laravel8:
laravel.com/docs/8.x/pagination#paginator-instance-methods
Con appends se puede usar para los ordenamientos
$user->appends([
'sort' => $_GET['sort'],
'desc' => $_GET['desc']
]);
y estas variables se pasan por url y se pueden pasar por GET a la página:
en los encabezados de la tabla::
<thead>
<tr>
<th style="width: 10px">
<a href="{{ url('/users') }}?sort=id<?php
if(isset($_GET['sort']) AND ($_GET['sort']=='id')){
if($_GET['desc']==0){echo('&desc=1');}
else {echo('&desc=0');}
} else {echo('&desc=0');}
?>">#</a>
</th>
<th>
<a href="{{ url('/users') }}?sort=name<?php
if(isset($_GET['sort']) AND ($_GET['sort']=='name')){
if($_GET['desc']==0){echo('&desc=1');}
else {echo('&desc=0');}
} else {echo('&desc=0');}
?>">Nombre</a>
</th>
<th><a href="{{ url('/users') }}?sort=email<?php
if(isset($_GET['sort']) AND ($_GET['sort']=='email')){
if($_GET['desc']==0){echo('&desc=1');}
else {echo('&desc=0');}
} else {echo('&desc=0');}
?>">Email</a></th>
<th><a href="{{ url('/users') }}?sort=password<?php
if(isset($_GET['sort']) AND ($_GET['sort']=='password')){
if($_GET['desc']==0){echo('&desc=1');}
else {echo('&desc=0');}
} else {echo('&desc=0');}
?>">Password</a></th>
</tr>
</thead>