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 7293 veces | 0 usuarios

Código fuente no disponible.

Compartir link del tutorial con tus amigos


ReactJS y Laravel Directorio de Empresas

USD 47.00

Descarga del código fuente

ReactJS y Laravel Directorio de Empresas
Curso de Laravel básico

USD 17.00

Descarga del código fuente

Curso de Laravel básico
Laravel Página Web Administrable

USD 17.00

Descarga del código fuente

Laravel Página Web Administrable

Más tutoriales de Laravel

Codea Applications

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

© Copyright Codea::App Cursos de Programación Online | LATAM | 2020 - 2024