Está en la página 1de 3

Trabajando con modelos

Los modelos permiten, retorno datos hay preparalos dentro la carpeta model

Y guarda igual que el nombre la tabla pero se inicia con mayuscula

<?php

namespace App\Models;

use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;

//use Laravel\Sanctum\HasApiTokens;//opcional

use Illuminate\database\Eloquent\Model;
class Docente_tipo extends Model
{
protected $table="docente_tipo";
protected $fillable=[
'doctip_iCodigo','doctip_vcNombre','doctip_cActivo'
];
public $timestamps=false; //descativando funcion de laravel

Para mostrar data seria


@php
$data=Docente_tipo::all();
foreach($data as $ndata)
{echo $ndata-> doctip_iCodigo;}
@endphp

Para mostrar directo seria

@php
$data=Docente_tipo::all();
@endphp
{{ $ndata-> doctip_iCodigo }}
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.

También podría gustarte