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

    Elisabet Lekue Alkorta hace 7 meses

    No me funciona el CDN de tailwind

    • Fernando hace 6 meses

      Prueba con este mi estimado.

      <script src="https://cdn.tailwindcss.com"></script>

  • Jesus Parra

    Jesus Parra hace 7 meses

    Excelente

  • Antonio Garci­a Mari­n

    Antonio Garci­a Mari­n hace 9 meses

    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:

    1. 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

    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

    Walter hace 1 año

    ? 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