CursosEmpresasBlogLiveConfPrecios

Creamos la vista de reportes

Clase 19 de 25 • Curso de PHP con Laravel

Clase anteriorSiguiente clase

Contenido del curso

Introducción

  • 1
    Intro y caracteristicas de Laravel

    Intro y caracteristicas de Laravel

    03:09 min

Fundamentos

  • 2
    Instalación de Laravel

    Instalación de Laravel

    06:48 min
  • 3
    Primer ruta en laravel

    Primer ruta en laravel

    06:14 min
  • 4
    Cómo funciona Blade

    Cómo funciona Blade

    08:30 min
  • 5
    Controladores en Laravel

    Controladores en Laravel

    07:23 min
  • 6
    Request

    Request

    06:10 min
  • 7
    Configuración de laravel

    Configuración de laravel

    05:07 min

Bases de Datos

  • 8
    Cómo funcionan las Migraciones de DB

    Cómo funcionan las Migraciones de DB

    07:00 min
  • 9
    Migraciones en Artisan

    Migraciones en Artisan

    05:28 min
  • 10
    Modelos con Eloquent

    Modelos con Eloquent

    06:19 min
  • 11
    Trabajando con un Modelo

    Trabajando con un Modelo

    07:48 min

Operaciones CRUD

  • 12
    Controladores y recursos

    Controladores y recursos

    14:08 min
  • 13
    Blade layout

    Blade layout

    05:46 min
  • 14
    Form para agregar reportes

    Form para agregar reportes

    07:35 min
  • 15
    CSRF

    CSRF

    08:21 min
  • 16
    Fake PUT/PATCH

    Fake PUT/PATCH

    10:58 min
  • 17
    Borrando reportes

    Borrando reportes

    11:21 min
  • 18
    Validaciones

    Validaciones

    12:07 min

Relaciones en bases de datos

  • 19
    Creamos la vista de reportes

    Creamos la vista de reportes

    Viendo ahora
  • 20
    Relaciones con eloquent

    Relaciones con eloquent

    13:17 min
  • 21
    Trabajando con relaciones

    Trabajando con relaciones

    14:35 min

Emails

  • 22
    Acción para enviar un mail

    Acción para enviar un mail

    08:32 min
  • 23
    Enviando emails

    Enviando emails

    14:04 min

Autenticación

  • 24
    Login

    Login

    09:38 min

Cierre

  • 25
    Cierre

    Cierre

    01:09 min
Tomar examen
Resumen
  • El método show despliega la información específica para un recurso dado.
  • Existe una técnica en Laravel llamada model binding que antes de llegar a la acción realiza el findOrFail y nos envía el objeto que se requiere.

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads
        Carlos Eduardo Gomez García

        Carlos Eduardo Gomez García

        teacher•
        hace 5 años

        El Model Binding es una de las cosas cool de Laravel, en lugar de recibir solo su ID, Laravel es capaz de identificar que si lo que estás esperando es un modelo, entonces el te lo sirve en el parámetro del método, es genial, y por dentro ya trae implementando el findOrFail:D

        Albert K. Camargo Barreda

        Albert K. Camargo Barreda

        student•
        hace 6 años

        Modificas la plantilla BLADE y los cambios no se muestran ?? SOLUCION: 1.- Borrar cache: php artisan cache:clear 2.- Borrar cache de views : php artisan view:cache

          Betsy Malely Astudillo Gutiérrez

          Betsy Malely Astudillo Gutiérrez

          student•
          hace 4 años

          También sirve el comando: php artisan optimize

          Santiago Rodríguez Osorio

          Santiago Rodríguez Osorio

          student•
          hace 3 años

          php artisan optimize:clear asegura borrar el cache de routes, models y demás.

          Saludos.

        Paul Cortes

        Paul Cortes

        student•
        hace 6 años

        Model Binding: se puede cambiar el parametro que se espera como ID de un Model por el Model en concreto

          Felix Michael Hernandez Flery

          Felix Michael Hernandez Flery

          student•
          hace 6 años

          👍

        DAVID OLVERA ESCOBEDO

        DAVID OLVERA ESCOBEDO

        student•
        hace 6 años

        Es posible disminuir el numero de vistas? utilizando el form add como update, también si es posible combinar el resultado de vista de la tabla con librerías tipo datatables o tambien sweetalert para la cuestion de delete. Saludos

        Roberth Jason Rios Jesus

        Roberth Jason Rios Jesus

        student•
        hace 5 años

        Cuando dígito el código me funciona me muestran las vistas, pero el problema es que cuando pongo un número ID distinto en la parte superior no me sale la ventana de error, alguien que pueda ayudarme?

          Isaac Navajas Pozo

          Isaac Navajas Pozo

          student•
          hace 5 años

          has usado find() o findorfile()¿?

        Alfredo Ugarte Reyes

        Alfredo Ugarte Reyes

        student•
        hace 5 años

        No entiendo porque al darle al titulo directamente va a la función show y no al edit por ejemplo

          José Fernando Pérez García

          José Fernando Pérez García

          student•
          hace 5 años

          Necesitas poner bien la ruta en tu elemento (botón) para dirigirte a donde quieras moverte.

        Alessandro Staiano

        Alessandro Staiano

        student•
        hace 6 años

        Me va a dar pena terminar el curso por la cantidad de cosas utiles que se ven.

        José Jesús Quilarque

        José Jesús Quilarque

        student•
        hace 6 años

        Notas:

        • Podemos hacer uso de una tecnica de laravel que se llama model binding que se ejecuta antes de llegar a la accion requerida de la clase ejecuta el findOrFail, enviandonos asi el objeto que se requiere con el $id o parametro que es enviado.

        • Sintaxis: public function show (InstanciadelModal $VariableConLaQueSeHaceReferenciaAlaInstancia) return view('directorio.vista'),[ 'nombreDeInput' => $$VariableConLaQueSeHaceReferenciaAlaInstancia ]

        David Andrés Rincón Suárez

        David Andrés Rincón Suárez

        student•
        hace 7 años

        Lo mejor del ModelBinding, es que me facilita también el llamado de los elementos asociados a relaciones y que tienen que ver con el objeto original... Un ejemplo: (Siendo $article my parámetro de clase)

        $my_tags = $article->tags->pluck('name'); $my_images = $article->images->pluck('name'); return view('admin.articles.show') ->with('article', $article) ->with('my_tags', $my_tags) ->with('my_images', $my_images);
        Juan Ledesma

        Juan Ledesma

        student•
        hace 6 años

        Hola amigos, tengo un problema, si alguien me puede ayudar estaría eternamente agradecido… Sucede que estoy trabajando en un proyecto y me piden mostrar información proveniente de una base de datos que existe, no se puede modificar. La base de datos es Postgresql, la consulta que hago me arroja esta información como se puede ver en el navegador

        Lo que necesito es representarla de la siguiente forma, en formato tabla, estoy trabajando con laravel. La imagen es solo un ejemplo y no representa los datos de la vista anterior, es como necesito que quede

          P G

          P G

          student•
          hace 6 años

          Hola! Si tienes el array con los datos en una vista de blade, podrias hacer un bucle foreach e ir pintando las columnas y filas dentro de una tabla de html, algo asi:

          <table> <thead> <tr> <th>Columna</th> <th>Escuela</th> </tr> </thead> <tbody> @foreach ($lista_con_los_datos as $elemento) <td>{{ $elemento->columna }}</td> // Si cada elemento de la lista es array en vez de un objeto {{ $elemento['columna'] }} <td>{{ $elemento->escuela }}</td> @endforeach <tr> <td></td> <td></td> </tr> </tbody> </table>
          P G

          P G

          student•
          hace 6 años

          Corrección en el html la etiqueta tr

          <table> <thead> <tr> <th>Columna</th> <th>Escuela</th> </tr> </thead> <tbody> @foreach ($lista_con_los_datos as $elemento) <tr> <td>{{ $elemento->columna }}</td> // Si cada elemento de la lista es array en vez de un objeto {{ $elemento['columna'] }} <td>{{ $elemento->escuela }}</td> </tr> @endforeach </tbody> </table>
        Juan Murillo

        Juan Murillo

        student•
        hace 7 años

        En que momento se uso el findorfaile ? segun vi siempre habiamos usado solo en find::

          Manuel Ojeda

          Manuel Ojeda

          student•
          hace 7 años

          Se vio en la clase de Validaciones: https://platzi.com/clases/1467-curso-php-laravel/16517-validaciones3241/

          El cual el uso del FindOrFail es una validación que si no encuentra el registro te regresa un error 404.

        Alejandro Atria

        Alejandro Atria

        student•
        hace un año

        Tuve un error en que el model binding no me funcionaba porque le asigné un nombre diferente a la variable. Aparentemente dentro de la "magia" de Laravel, le asigna un nombre definido a la variable en la cual realiza el binding.

        Por ejemplo: había puesto en la ruta "(ExpensesReport $report)" y no funcionaba, pero cuando le puse el nombre de variable que me recomendaba el editor "(ExpensesReport $expensesReport)" sí funcionó.

        La verdad no me gusta el nivel excesivo de abstracción que tiene Laravel por cosas así. Siento que lleva a que todo el mundo haga el código de la misma forma al utilizar los métodos ya implementados por ellos.

        Juan Ledesma

        Juan Ledesma

        student•
        hace 6 años

        Hola amigos, tengo un problema, si alguien me puede ayudar estaría eternamente agradecido… Sucede que estoy trabajando en un proyecto y me piden mostrar información proveniente de una base de datos que existe, no se puede modificar. La base de datos es Postgresql, la consulta que hago me arroja esta información como se puede ver en el navegador:

        Lo que necesito es representarla de la siguiente forma, en formato tabla, estoy trabajando con laravel. La imagen es solo un ejemplo y no representa los datos de la vista anterior, es como necesito que quede

          Lorena Pena Verdú

          Lorena Pena Verdú

          student•
          hace 6 años

          Hola Juan!

          Viendo los cursos que has realizado me sorprende mucho que no logres mostrar los datos en una tabla. ¿Cuál es tu problema?

          Iván Andrés Pineda Salazar

          Iván Andrés Pineda Salazar

          student•
          hace 3 años

          ya han pasado 4 años jejej, me imagino que lo lograste resolver con while

        Alfonso Navarro

        Alfonso Navarro

        company_admin•
        hace 7 años

        Excelente, para lo q al crear la tabla el campo 'id' le colocaron otro nombre, como yo, lo q les tocaría hacer es en el archivo model colocar la sgte instrucción

        protected $primaryKey = 'nombre_id';
        Andrés Ruz Salinas

        Andrés Ruz Salinas

        student•
        hace 6 años

        Hola Hola, he seguido este tutorial y a su vez he agregado mis propias página pero me mi app me está arrojando el error "laravel No such file or directory" en una vista pero resulta que el archivo de vista, si existe. He deshecho varios cambios del proyecto y he revisado varias veces los videos para ver si algo se me ha quedado pero nada... nada funciona.

        Alguna idea ??

        Gracias

          diego andres guzman

          diego andres guzman

          student•
          hace 6 años

          tienes el codigo en git o algo, o muestra como muestras las vistas y como menejass los controladores

          Ricardo Portillo

          Ricardo Portillo

          student•
          hace 6 años

          verifia tus rutas me salio el mismo error hoy en una prueba fue que coloque algo incorrectamente en ese archivo.

        Felix Michael Hernandez Flery

        Felix Michael Hernandez Flery

        student•
        hace 6 años

        Muy bueno el Model binding, Laravel es Excelente!!

        Usuario anónimo

        Usuario anónimo

        user•
        hace 6 años

        Excelente :) 😊👌🙌

        Juan Manuel Hernandez Marcano

        Juan Manuel Hernandez Marcano

        student•
        hace 6 años

        por alguna razon no me funciona el findOrFail me sigue lanzando el error de que no existe ese numero de reporte a pesar de usarlo

          Isaac Navajas Pozo

          Isaac Navajas Pozo

          student•
          hace 6 años

          a mi me ocurre lo mismo

          Gastón Gentile

          Gastón Gentile

          student•
          hace 6 años

          Hola Juan, Proba debuggeando la función show, para saber cual es el numero de reporte que esta trayendo. Hace lo siguiente, dentro de esta función coloca: dd($id);

          dd.PNG
          Al entrar a alguno de tus report debería mostrarte el numero de $id del reporte al que estas accediendo.

          Si te muestra null, es porque no le estas pasando ningún id. Comproba que la ruta que colocaste a tu expense_report en el index sea: expense_report/{{ $expenseReport-&gt;id }}

          Saludos,

        Jimmy Buriticá Londoño

        Jimmy Buriticá Londoño

        student•
        hace 6 años

        Con el método show, terminamos de configurar totalmente el controlador. Se que aun son temas básicos, pero lo he hecho en PHP puro y les puedo asegurar que hemos avanzado mucho.

        Edward Suarez

        Edward Suarez

        student•
        hace 6 años

        Funciono perfectamente