search
CursosEmpresasBlogLiveConfPrecios
Curso de PHP con Laravel

Trabajando con un Modelo

Curso de PHP con Laravel

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
    Sistema de autenticación en Laravel

    Sistema de autenticación en Laravel

    09:38 min

Cierre

  • 25
    Cierre

    Cierre

    01:09 min
schoolTomar examen

Trabajando con un Modelo

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

Comentarios30

Moisés Cedeño

Moisés Cedeño

Estudiante
Hace 7 años
    angel gutierrez

    angel gutierrez

    Estudiante
    Hace 7 años
    Johanna Apure Canónico

    Johanna Apure Canónico

    Estudiante
    Hace 5 años
Pablo Gúzman

Pablo Gúzman

Estudiante
Hace 7 años
    Alfonso Navarro

    Alfonso Navarro

    Company_admin
    Hace 7 años
    Daniel Muñoz Martín

    Daniel Muñoz Martín

    Estudiante
    Hace 7 años
Jesús Enrique Prieto Treviño

Jesús Enrique Prieto Treviño

Estudiante
Hace 8 años
    Erick Leao Pérez Medina

    Erick Leao Pérez Medina

    Estudiante
    Hace 8 años
    Martha Muñoz

    Martha Muñoz

    Estudiante
    Hace 7 años
Francisco Daniel Carvajal Becerra

Francisco Daniel Carvajal Becerra

Profesor
Hace 5 años
Mariley Erika Condori Calla

Mariley Erika Condori Calla

Estudiante
Hace 7 años
    Jimmy Buriticá Londoño

    Jimmy Buriticá Londoño

    Estudiante
    Hace 6 años
Emmanuel Rodríguez

Emmanuel Rodríguez

Estudiante
Hace 7 años
    Daniel Hurtado

    Daniel Hurtado

    Estudiante
    Hace 7 años
    Carlos Andres Castañeda Osorio

    Carlos Andres Castañeda Osorio

    Estudiante
    Hace 7 años
Santiago Arboleda Londoño

Santiago Arboleda Londoño

Estudiante
Hace 8 años
Enrique Garcia Stave

Enrique Garcia Stave

Estudiante
Hace 7 años
Jimmy Buriticá Londoño

Jimmy Buriticá Londoño

Estudiante
Hace 6 años
    Jhonathan Alfonso

    Jhonathan Alfonso

    Estudiante
    Hace 6 años
walter Jorge

walter Jorge

Estudiante
Hace 6 años
Eduin Morales

Eduin Morales

Estudiante
Hace 7 años
    Lorena Pena Verdú

    Lorena Pena Verdú

    Estudiante
    Hace 7 años
Edward Suarez

Edward Suarez

Estudiante
Hace 6 años
    Jhonathan Alfonso

    Jhonathan Alfonso

    Estudiante
    Hace 6 años
José Antonio Quintanilla Umaña

José Antonio Quintanilla Umaña

Estudiante
Hace 6 años
    Jhonathan Alfonso

    Jhonathan Alfonso

    Estudiante
    Hace 6 años
Samuel Antonio Rojas Dugarte

Samuel Antonio Rojas Dugarte

Estudiante
Hace 6 años
Luis Lazcano

Luis Lazcano

Estudiante
Hace 7 años
    xxxxxxxxxx xxxxxxxxxxxxxxxx

    xxxxxxxxxx xxxxxxxxxxxxxxxx

    Estudiante
    Hace 7 años
    Juan Castro

    Juan Castro

    Profesor
    Hace 7 años
jarvinson Valencia

jarvinson Valencia

Estudiante
Hace 4 años
    Luis Alberto Cruz Orellana

    Luis Alberto Cruz Orellana

    Estudiante
    Hace 4 años
Andrés Felipe Lopez gomez

Andrés Felipe Lopez gomez

Estudiante
Hace 5 años
Paul Cortes

Paul Cortes

Estudiante
Hace 6 años
José Jesús Quilarque

José Jesús Quilarque

Estudiante
Hace 7 años
Sergio Veloza

Sergio Veloza

Estudiante
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');

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

Yo uso PostgreSQL 11.10 (Debian 10) y funciona

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.

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

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 !

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

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

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

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.

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'); }); }

Gracias.

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.

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

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');

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');

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.

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

Gracias bro!

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

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?

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

Es hermoso que todo funcione a la primera

Jajajaj ya va tomando forma!

excelente para comenzar con lo básico de migraciones

Y vienen más cosas geniales!

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

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

¿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?

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

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/

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

Captura de pantalla 2022-03-13 163028.png

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

Excelente clase

Excelente los modelos las migraciones

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

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