CursosEmpresasBlogLiveConfPrecios

Trabajando con un Modelo

Clase 11 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

    Viendo ahora

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

    06:44 min
  • 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
  • No es aconsejable modificar una migración ya que si estamos trabajando en equipo alguien puede haber ya corrido la migración con anterioridad y esto le causaría conflictos. Lo aconsejable es crear una migración adicional.
  • El comando migrate:fresh lo reinicia todo incluyendo la base de datos y los elementos creados.

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
        Moisés Cedeño

        Moisés Cedeño

        student•
        hace 6 años

        Para crear la columna title después de la columna 'id' y que esté mejor estruturado:

        $table->text('title')->after('id');

          angel gutierrez

          angel gutierrez

          student•
          hace 6 años

          pero eso solo funciona en MySql por que lo probe en postgreSql y no lo hace

          Johanna Apure Canónico

          Johanna Apure Canónico

          student•
          hace 5 años

          Yo uso PostgreSQL 11.10 (Debian 10) y funciona

        Pablo Gúzman

        Pablo Gúzman

        student•
        hace 7 años

        Por eso odio las versiones de Laravel, después te salen con el siguiente error a la hora de hacer lo que el maestro hace y no sabes por que.

        Este error salio:

        Symfony\Component\Debug\Exception\FatalThrowableError : syntax error, unexpected ':', expecting ',' or ')'

        Pero claro que después de un rato el batallar por que revisar el código del maestro y el tuyo y es igual.

        Pero la bronca es la versión de Laravel el cual modifica ciertos detalles como lo que encontré para que funcionara.

        Codigo del maestro:

        $table->text( column: 'title' );

        Mi código

        $table->text( 'title' );

        Se quita el column:, el 2 puntos marca el error. Por si alguien le salio mal.

          Alfonso Navarro

          Alfonso Navarro

          company_admin•
          hace 7 años

          @CreatividadMovil2018 el "column" que le aparece al profesor, lo coloca como una ayuda el editor de texto q el utiliza llamado WebStorm, es un editor pago q coloca automáticamente esas ayudas, pero Laravel no fue q cambio de versión y antes lo tenia y ahora no.

          Ese detalle es muy importante q lo tengas en cuenta ya q esas ayudas aparecen muy frecuentemente a lo largo del curso .

          Daniel Muñoz Martín

          Daniel Muñoz Martín

          student•
          hace 7 años

          anRoswell tiene razón, el texto column que aparece en color gris es una ayuda del editor de código, si te fijas en otras partes del curso verás como también aparece valores como: default, key, etc... ese texto no tienes que escribirlo es para ayudarte a entender los parámetros que se les pasa a las funciones por ejemplo: el primer parámetro es la key, el segundo un valor default cosas de ese estilo !

        Jesús Enrique Prieto Treviño

        Jesús Enrique Prieto Treviño

        student•
        hace 7 años

        ¿Utilizamos tinker porque aún no tenemos creado una UI?

          Erick Leao Pérez Medina

          Erick Leao Pérez Medina

          student•
          hace 7 años

          Precisamente, tinker permite interactuar con nuestras clases sin tener una UI. Yo lo utilizo también para verificar rapidamente los queries que estoy desarrollando.

          Martha Muñoz

          Martha Muñoz

          student•
          hace 7 años

          Tinker permite utilizar las clases y modelos que tienes en la App de Laravel desde la consola de comandos, con esto puedes por ejemplo probar queries y resultados antes de escribirla en el código

        Francisco Daniel Carvajal Becerra

        Francisco Daniel Carvajal Becerra

        teacher•
        hace 4 años

        En lugar de escribir:

        App\Models\expenseReport::all();

        Podemos escribir:

        $report::all();

        Esto debido a que ya habiamos almacenado en la variable $report una instancia de la clase ExpenseReport.

        Mariley Erika Condori Calla

        Mariley Erika Condori Calla

        student•
        hace 6 años

        Si estas trabajando en la version 6 de laravel, ya no es necesario poner columns dentro de los paréntesis laravel#creandocolumnas

        public function up() { Schema::table('expense_reports', function (Blueprint $table) { $table->text('title'); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('expense_reports', function (Blueprint $table) { $table->dropColumn('title'); }); }
          Jimmy Buriticá Londoño

          Jimmy Buriticá Londoño

          student•
          hace 6 años

          Gracias.

        Emmanuel Rodríguez

        Emmanuel Rodríguez

        student•
        hace 6 años

        Si están utilizando postgres 10, en vez de mysql, tuve el siguiente error.

        Illuminate\Database\QueryException : SQLSTATE[23502]: Not null violation: 7 ERROR: column "title" contains null values (SQL: alter table "expense_reports" add column "title" text not null)

        Lo resolví anexando:

        $table->text('title')->nullable();

        Por si gustan intentar con postgres.

          Daniel Hurtado

          Daniel Hurtado

          student•
          hace 6 años

          No creo que tu error tenga algo que ver con el motor que usas, si no que no estableciste nada al campo 'title'

          Carlos Andres Castañeda Osorio

          Carlos Andres Castañeda Osorio

          student•
          hace 6 años

          Otra solución si no se desea aceptar valores null en el campo es colocar un valor por default:

          $table->text('title')->default('El valor que desees');
        Santiago Arboleda Londoño

        Santiago Arboleda Londoño

        student•
        hace 7 años

        Además de los tipos de columna, hay varios "modificadores" de columna que se pueden utilizar al añadir una columna a una tabla de base de datos. Por ejemplo, para hacer que la columna "title" esté después de la columna "id", debes utilizar el siguiente método:

        $table->text('title')->after('id');
        Enrique Garcia Stave

        Enrique Garcia Stave

        student•
        hace 6 años

        Apuntes: Las migraciones practicamente nunca las modificamos, practicamente lo que hacemos es agregar una migracion adicional haciendo referencia a la tabla a la que vamos a realizar la modificacion, de esta forma si alguien ya corrió la primera migracion que hacia referencia a dicha tabla, con el nuevo envío, se va a realizar la modificacion. Para ello podemos escribir algo como lo siguiente: php artisan make:migration create_column_title_in_reports --table=expense_reports De esta manera, al notificar mediante el comando, que vamos a trabajar sobre una tabla, veremos espacios en los respectivos metodos de migracion del archivo creado para trabajar sobre ellos.

        Jimmy Buriticá Londoño

        Jimmy Buriticá Londoño

        student•
        hace 6 años

        Les comparto el link actualizado con la documentación de Eloquent: https://laravel.com/docs/7.x/eloquent

          Jhonathan Alfonso

          Jhonathan Alfonso

          student•
          hace 6 años

          Gracias bro!

        walter Jorge

        walter Jorge

        student•
        hace 5 años

        hola a alguien le salió este error

        $report = new App\ExpenseReport(); PHP Fatal error: Class 'App/ExpenseReport' not found in Psy Shell code on line 1

        Eduin Morales

        Eduin Morales

        student•
        hace 7 años

        Estoy estancado hace varios días en esta lección, al utilizar tinker tengo errores como este PHP Warning: Creating default object from empty value in Psy Shell code on line 1 Alguna solución?

          Lorena Pena Verdú

          Lorena Pena Verdú

          student•
          hace 6 años

          y qué comando ejecutas para que te de ese error?

        Edward Suarez

        Edward Suarez

        student•
        hace 6 años

        Es hermoso que todo funcione a la primera

          Jhonathan Alfonso

          Jhonathan Alfonso

          student•
          hace 6 años

          Jajajaj ya va tomando forma!

        José Antonio Quintanilla Umaña

        José Antonio Quintanilla Umaña

        student•
        hace 6 años

        excelente para comenzar con lo básico de migraciones

          Jhonathan Alfonso

          Jhonathan Alfonso

          student•
          hace 6 años

          Y vienen más cosas geniales!

        Samuel Antonio Rojas Dugarte

        Samuel Antonio Rojas Dugarte

        student•
        hace 5 años

        Para poder colocar la columna 'title' despues de la columna 'id' y asi tener una mejor estructura coloquen esto:

        $table->text('title')->after('id');
        Luis Lazcano

        Luis Lazcano

        student•
        hace 6 años

        ¿Cual es la nomenclatura que deben de tener los nombres de las tablas? ¿Cual es la nomenclatura para los campos y cuando tienen mas de dos sufijos esos campos por ejemplo descriptionName description_name?

          xxxxxxxxxx xxxxxxxxxxxxxxxx

          xxxxxxxxxx xxxxxxxxxxxxxxxx

          student•
          hace 6 años

          existen varios estándar, el más común:

          1.- Utlizar '' en lugar de espacios 2.- Colocar la primera letra del tipo de datos 3.- Nombre del campo, si son dos o más palabras, separar con '' 4.- Si el campo es primary key colocar _pk al final 5.- _fk si es foreign key.

          ejem:

          i_numero_alumno_pk

          Juan Castro

          Juan Castro

          teacher•
          hace 6 años

          Estos recursos pueden ser útiles:

          :point_right: https://es.stackoverflow.com/questions/26452/qu%C3%A9-convenci%C3%B3n-de-nombrado-debo-utilizar-en-bases-de-datos :point_right: https://profesores.virtual.uniandes.edu.co/~isis2304/dokuwiki/lib/exe/fetch.php?media=tutoriales:estandares_de_nombramiento_de_objetos_en_una_bd.pdf :point_right: https://platzi.com/discusiones/1272-sql-mysql/31202-alguien-tiene-una-guia-sobre-que-nomenclatura-se-debe-usar-en-las-bases-de-datos/

        jarvinson Valencia

        jarvinson Valencia

        student•
        hace 4 años

        Alguien sabe sobre este erro? Ya utilicé php artisan cache:clear y nada

        Captura de pantalla 2022-03-13 163028.png

          Luis Alberto Cruz Orellana

          Luis Alberto Cruz Orellana

          student•
          hace 4 años

          Es por que te hace falta esa carpeta o no tienes permiso "boostrap/cache"

          Si ya esta creada intenta abrir la consola en modo administrador

        Andrés Felipe Lopez gomez

        Andrés Felipe Lopez gomez

        student•
        hace 4 años

        Excelente clase

        Paul Cortes

        Paul Cortes

        student•
        hace 6 años

        Excelente los modelos las migraciones

        José Jesús Quilarque

        José Jesús Quilarque

        student•
        hace 6 años

        Notas:

        • Cada vez que queramos modificar algo en las migraciones es preferible crear una antes de modificar una existente haciendo referencia a la modificacion que vamos a realizar siguiendo la sintaxis de el comando make:migration -help
        Sergio Veloza

        Sergio Veloza

        student•
        hace 6 años

        Tip del mentor: No edites de forma directa la migración, crea una nueva con la información, para así cuando se corran las migraciones todo el equipo pueda correr las migraciones que hagan falta