16. Cómo listar y leer registros en Laravel
La lectura y listado de registros es una tarea fundamental en el desarrollo de aplicaciones web. En el decimocuarto capítulo del curso "Laravel desde cero", aprenderás a listar y leer registros en Laravel utilizando la función all, find, findOrFail y where. La función all te permite recuperar todos los registros de una tabla, mientras que la función find te permite recuperar un registro específico en función de su ID. La función findOrFail te permite recuperar un registro específico en función de su ID, pero lanzará una excepción si no se encuentra el registro. La función where te permite recuperar un conjunto de registros que cumplen una determinada condición. Además, en este capítulo, también aprenderás a utilizar la paginación para listar registros de manera eficiente y cómo realizar búsquedas utilizando la función where en combinación con la paginación. Con estos conocimientos, podrás listar y leer registros de manera efectiva y eficiente en tus aplicaciones Laravel.
5 comentarios
Inicia sesión para comentar
Comentarios:
-
Elisabet Lekue Alkorta hace 1 año
No me funciona el CDN de tailwind
-
Fernando hace 11 meses
Prueba con este mi estimado.
<script src="https://cdn.tailwindcss.com"></script>
-
-
Jesus Parra hace 1 año
Excelente
-
Antonio Garcia Marin hace 1 año
Laravel también soporta Bootstrap (4 y 5) para la generación automática de los enlaces de la paginación.
Se puede configurar de dos maneras:
- Configurarlo para todo el proyecto modificando AppServiceProvider.
Mas info aqui https://laravel.com/docs/10.x/pagination#using-bootstrap
2. Configurarlo en cada vista de Blade pasando un valor como parametro de la funcion links().
Para Bootstrap 5 seria:
{{$cursos->links('pagination::bootstrap-5')}}
-
Génesis Melquisedec Sarante Feliz hace 1 año
Este curso vale oro hermano. Muchas gracias!
-
Victor Arana Flores hace 1 año
Hola Génesis gracias. Recuerda que si quieres apoyar este proyecto, me ayudarías mucho si adquieres alguno de mis cursos de paga :D
-
-
Walter hace 2 años
? Para obtener todos los registros agregamos en el método index() del controlador, en este caso, CursoController.php, lo siguiente:
$cursos = Curso::all(); return view('cursos.index', compact('cursos'));
Ahora podemos utilizar la variable $cursos en la vista index.blade.php para mostrar los registros:
<ul> @foreach($cursos as $curso) <li>{{ $curso->name }}</li> @endforeach </ul>
? La forma anterior nos puede traer problemas si los registros son demasiados, entonces podemos recuperar los registros de forma paginada:
$cursos = Curso::paginate();
Ahora en la vista se muestran los primeros quince registros, para movernos entre páginas agregamos antes de @endsection:
{{ $cursos->links() }}
Nos faltan los estilos de Tailwind CSS para las flechas de atrás y adelante y la numeración.
? Enlace de creación
Primero damos un nombre identificatorio a las rutas en el archivo web.php:
Route::get('cursos/crear', [CursoController::class, 'create'])->name('cursos.create'); Route::get('cursos/{curso}', [CursoController::class, 'show'])->name('cursos.show'); Route::get('cursos', [CursoController::class, 'index'])->name('cursos.index');
De esta forma si modificamos la URL no tendremos inconvenientes.
En la vista index.blade.php agregamos el enlace:
<a href="{{ route('cursos.create') }}">Crear curso</a>
? Enlaces de visualización
Modificamos la lista para que cada item sea un enlace, en la vista index:
<li> <a href="{{ route('cursos.show', $curso->id) }}">{{ $curso->name }}</a> </li>
Como estamos enviando el id a la ruta, debemos actualizar la ruta:
Route::get('cursos/{id}', [CursoController::class, 'show'])->name('cursos.show');
y también el método show en el controlador:
public function show($id) { $curso = Curso::find($id); return view('cursos.show', compact('curso')); }
Por último actualizamos la vista show.blade.php:
@section('title', 'Curso ' . $curso->name) @section('content') <h1>Bienvenidos al curso {{ $curso->name }}</h1> <a href="{{ route('cursos.index') }}">Volver a cursos</a> <p><strong>Categoría </strong>{{ $curso->categoria }}</p> <p>{{ $curso->description }}</p> @endsection