Inicio » Blog » Laravel

7 junio, 2019

Extraer el registro Next y Prev en Laravel

¿Cómo extraer el registro next y prev en Laravel ? Realizamos consultas elocuent que extraen datos a partir de recibir como parámetro el ID del registro

Extraer el registro Next y Prev en Laravel

Suscríbete a nuestro canal en Youtube

Suscríbirse

Tener un botón de next o siguiente en una aplicación web es un método mucho más optimizado que tener un paginador completo con rangos de páginas.

¿Cómo programar un botón siguiente y anterior con Laravel ?

Programando la función que cumplirá la acción de determinar el registro anterior y posterior calculada en base al registro actual de la consulta:

public function registro($id){
        //RETORNAR EL REGISTRO SIGUIENTE Y ANTERIOR DE UN REGISTRO ACTUAL//
        $registro   =   Modelo::where("id",$id)
                        ->first();
        $next       =   Modelo::where('id', '>', $registro->id)
                        ->orderBy('id', 'asc')
                        ->first();
        $prev       =   Modelo::where('id', '<', $registro->id)
                        ->orderBy('id', 'desc')
                        ->first();
        return view("vista.registro",compact('registro','next','prev'));
    }

La función registro espera un parámetro definido como $id; 

Las 03 consultas de la función registro

  1. Consulta nro 1.-  $registro   =   Modelo::where("id",$id)->first(); Esta consulta extrae el registro que coincide el valor del $id que tiene como parámetro.

  2. Consulta nro 2.-  $next = Modelo::where('id', '>', $registro->id)->orderBy('id', 'asc')->first(); Consulta que permite extraer el siguiente registro a partir de la consulta nro 1; con ella obtenemos el id que usado para extraer el primer resultado,
  3. Consulta nro 3.- $prev = Modelo::where('id', '<', $registro->id)->orderBy('id', 'desc')->first(); La tercera consulta extrae el registro anterior al registro actual.

Luego retornamos en una vista blade todos los datos del registro actual, el siguiente registro en next y el registro anterior en prev

Acceder a los datos de los registro next y prev

La forma de acceder a los datos mediante una vista o plantilla blade es la siguiente

  1. Digamos que queremos mostra el id del registro contenido en next: el código sería  {{$next->id}} y para prev es {{$prev->id}} de igual forma para los diferentes atributos que tenga el modelo registro.
  2. Para acceder a los datos del registro actual tenemos la siguiente sintaxis: {{$registro->id}}; entonces con ello obtenemos el id.

¿Cómo se usa en una página web?

Muy fácilmente, colocamos dos links con la etiqueta html; veamos un ejemplo de código html y blade:

 <div class="row">
                        <div class="col-6">
                            @if(!empty($prev))                            
                            <a href="/registro/{{$prev->slug}}" class="btn btn-outline-success btn-sm btn-block" >
                                &#171; Anterior{{$prev->id}} 
                            </a>
                            <p>{{$prev->nombre}}</p>
                            @endif
                        </div>
                        <div class="col-6 text-right">                            
                            @if(!empty($next))                            
                            <a href="/registro/{{$next->slug}}" class="btn btn-outline-success btn-sm btn-block" >
                               siguiente{{$next->id}} &#187;
                            </a>
                            <p class="text-right">{{$next->nombre}}</p>
                            @endif
                        </div>
</div>    

Explicando un poco la funcionalidad, tenemos dos botones uno que nos lleva al registro anterior y el otro al registo siguiente.

Concluimos que implementar esta funcionalidad en una aplicación web es bastante sencillo usando blade con el framework de desarrollo web Laravel. Hasta un proximo script de código PHP.

 


Leido 6977 veces

Compartir link del tutorial con tus amigos


Laravel 9 Página Web para Negocio Laravel 9 Página Web para Negocio

Curso Laravel 9 Avanzado Desarrollo Web Administrable para negocio

Descarga del código fuente

USD 10.00

ReactJS y Laravel Directorio de Empresas ReactJS y Laravel Directorio de Empresas

Curso ReactJS y Laravel desarrollo fullstack directorio empresarial

Descarga del código fuente

USD 47.00

Aprende más sobre Laravel

Cursos de programación

Codea Codea App

México, Colombia, España, Venezuela, Argentina, Bolivia, Perú

© Todos los derechos reservados Codea App | ...de frente al código!!! | 2020 - 2023