CursosEmpresasBlogLiveConfPrecios

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

    06:44 min
  • 20
    Relaciones con eloquent

    Relaciones con eloquent

    13:17 min
  • 21
    Trabajando con relaciones

    Trabajando con relaciones

    Viendo ahora

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
Tomar examen

Trabajando con relaciones

Resumen

Comenzaremos a usar tablas relacionadas

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

      Comentarios

        Paul Cortes

        Paul Cortes

        Estudiante
        Hace 6 años
          Felix Michael Hernandez Flery

          Felix Michael Hernandez Flery

          Estudiante
          Hace 6 años
          Jhonathan Alfonso

          Jhonathan Alfonso

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

        Jimmy Buriticá Londoño

        Estudiante
        Hace 6 años
        Javier Andrés Poduje Alegría

        Javier Andrés Poduje Alegría

        Estudiante
        Hace 7 años
          German Sayago

          German Sayago

          Estudiante
          Hace 7 años
          KEVIN BRAYAN LUNA FIGUEROA

          KEVIN BRAYAN LUNA FIGUEROA

          Estudiante
          Hace 7 años
        Geraldin Valencia Valencia

        Geraldin Valencia Valencia

        Estudiante
        Hace 7 años
          Paolo Restuccia Restuccia

          Paolo Restuccia Restuccia

          Estudiante
          Hace 7 años
          Esteban Cabrera Gómez

          Esteban Cabrera Gómez

          Estudiante
          Hace 7 años
        Sergio Andrés Martínez Ramírez

        Sergio Andrés Martínez Ramírez

        Estudiante
        Hace 6 años
          Franz Eduardo Tejada Valencia

          Franz Eduardo Tejada Valencia

          Estudiante
          Hace 5 años
          Omar Villafuerte

          Omar Villafuerte

          Estudiante
          Hace 5 años
        Sebastian Almiron

        Sebastian Almiron

        Estudiante
        Hace 7 años
        Jonathan De Jesus Meneses Marquez

        Jonathan De Jesus Meneses Marquez

        Estudiante
        Hace 6 años
          Sergio Veloza

          Sergio Veloza

          Estudiante
          Hace 6 años
          Sergio Veloza

          Sergio Veloza

          Estudiante
          Hace 6 años
        Enrique Garcia Stave

        Enrique Garcia Stave

        Estudiante
        Hace 6 años
        Jairo Noguera

        Jairo Noguera

        Estudiante
        Hace 6 años
        Mauro Páginas Web

        Mauro Páginas Web

        Estudiante
        Hace 7 años
          Moisés Cedeño

          Moisés Cedeño

          Estudiante
          Hace 7 años
          Kenneth Angulo L

          Kenneth Angulo L

          Estudiante
          Hace 4 años
        Cesar Nilton Rojas Valero

        Cesar Nilton Rojas Valero

        Estudiante
        Hace 5 años
          Mariano Costantino

          Mariano Costantino

          Estudiante
          Hace 5 años
        Erik Antillanca

        Erik Antillanca

        Estudiante
        Hace 7 años
          Alfonso Navarro

          Alfonso Navarro

          Company_admin
          Hace 7 años
          jean pierre gabriel nieto acosta

          jean pierre gabriel nieto acosta

          Estudiante
          Hace 7 años
        Benny Franco

        Benny Franco

        Estudiante
        Hace 7 años
          Félix Andersson

          Félix Andersson

          Estudiante
          Hace 7 años
        Jeison Daniel Torres Benavides

        Jeison Daniel Torres Benavides

        Estudiante
        Hace 4 años
          Kenneth Angulo L

          Kenneth Angulo L

          Estudiante
          Hace 4 años
        Noelia Iglesias Martínez

        Noelia Iglesias Martínez

        Estudiante
        Hace 7 años
          Moisés Cedeño

          Moisés Cedeño

          Estudiante
          Hace 7 años
          Fran Delgado

          Fran Delgado

          Estudiante
          Hace 6 años
        Brandon Pineda

        Brandon Pineda

        Estudiante
        Hace 4 años
          Kenneth Angulo L

          Kenneth Angulo L

          Estudiante
          Hace 4 años
        Enrique Garcia Stave

        Enrique Garcia Stave

        Estudiante
        Hace 6 años
          Germán QL

          Germán QL

          Estudiante
          Hace 6 años
        Alejandro Atria

        Alejandro Atria

        Estudiante
        Hace 2 años
        Kenneth Angulo L

        Kenneth Angulo L

        Estudiante
        Hace 4 años
        Usuario anónimo

        Usuario anónimo

        User
        Hace 7 años
          Lorena Pena Verdú

          Lorena Pena Verdú

          Estudiante
          Hace 7 años
          Daniel Hurtado

          Daniel Hurtado

          Estudiante
          Hace 7 años

      Hasta video espere que explicaran las relaciones en Eloquent que es como se deben de hacer según la documentacion, realmente queda haciendo falta para crear algo de calidad, lo mínimo necesario para el almacenamiento de datos y lo mas importante su integridad,

      Link a la documentacion, por ejemplo en este proyecto se debió haber usado:

      • foreign
      • dropForeign Example:
      class AddExpensesToExpenseReport extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('expenses', function (Blueprint $table) { $table->foreign('expense_report_id')->references('id')->on('expense_reports'); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('expenses', function (Blueprint $table) { $table->dropForeign(['expense_report_id']); }); } }

      👍 Excelente aporte!!

      Gracias bro!

      Al archivo ExpenseController.php debes adicionar las siguientes líneas:

      use App\ExpenseReport; use App\Expense;

      Validación de Expenses en la función store:

      • description: Requerida y con al menos tres caractéres.
      • amount: requerida, número entero y positivo.
      public function store(Request $request, ExpenseReport $expenseReport) { $validaData = $request->validate([ 'description' => 'required|min:3', 'amount' => 'required|integer|min:1' ]); $expense = new Expense(); $expense -> description = $request -> get('description'); $expense -> amount = $request -> get('amount'); $expense -> expense_report_id = $expenseReport -> id; $expense -> save(); return redirect('/expense_reports/' . $expenseReport->id); }

      en amount usaría “numeric”, sino no se puede colocar decimales

      @germansayago como dices mejor si, se utiliza numeric

      8:32 , de igual manera como lo hiciste con ExpenseReportController, olvidaste poner use App\ExpenseReport; en el controlador ExpenseController, lo que causa este error cuando intentas crear un nuevo expense. "Class App\Http\Controllers\ExpenseReport does not exist". Agregando ese use en el controlador Expense, se soluciona, por si le sucede a alguien más.

      Si, lo noté también. Sabes que sucede, que entiendo que PHP Storm agrega automáticamente esa línea cuando se escribe esa clase dentro de la acción.

      Según el ID y los plugins instalados, cuando agregas un controlles u otro elemento, estas llamadas se agregan automáticamente en el inicio del archivo

      En los casos que sea necesario usar un modelo padre, como en este ejercicio, la forma en como se organiza el controlador y las rutas tiene un nombre y se llama Controladores de recursos anidados, y Laravel también nos provee una forma de crear controladores de recursos anidados de una manera super fácil.

      Sólo debemos especificar la variable parent para indicar cuál es el padre y el nombre del modelo con el cual está asociado.

      si ejecutas _**php artisan make:controller --help **_podrás ver estas opciones

      -m, --model[=MODEL] Generate a resource controller for the given model. -p, --parent[=PARENT] Generate a nested resource controller class.

      Para este caso podemos crear nuestro recurso anidado usando el siguiente comando:

      php artisan make:controller -r -m Expense -p ExpenseReport ExpenseController

      Igualmente podemos matricular nuestras rutas como tipo recurso y usar la funcionalidad de excluir las rutas que no necesitamos o de incluir solo las rutas que vamos a usar.

      Route::resource('expense_reports.expenses','ExpenseController')->only(['create','store']);

      Y finalmente en los formularios podemos hacer el llamado a las rutas con el nombre que corresponden:

      Vista show.blade.php de expenses_reports. Para llamar al método create:

      <a class="btn btn-primary" href="{{ route('expense_reports.expenses.create',['expense_report' => $report->id]) }}">New expense</a>

      Vista create.blade.php de expenses. Para llamar al método store:

      <form action="{{ route('expense_reports.expenses.store',['expense_report' => $report->id]) }}" method="POST">

      Fue de gran ayuda, gracias.

      Excelente aporte sin dudas!

      Para los que quieran tener las validaciones en español les dejo un link validation en espanol

      Me sucede esto:

      Class App/http/Controllers/ExpenseReport does not exist

      pero el controller si está creado :( Help me !

      Hola!

      Para solucionar debes agregar

      use App\ExpenseReport;

      en la parte inicial de tu ExpenseController.php o el controlador que estés usando

      Si por alguna razón te muestra un error tipo Undefined variable “como a mi”, para solucionar debes agregar

      use App\Expense;

      en la parte inicial de tu ExpenseController.php o el controlador que estés usando

      Apuntes: Añadimos un nuevo controlador tipo recurso para la nueva clase (y entidad) creada: - php artisan make:controller --resource ExpenseController Luego en la vista show, creamos un enlace hacia la creacion de nuevos formularios: - <a href="/expense_reports/{{ $report->id }}/expenses/create"> Luego se proceden a configurar las rutas: -Route::get('/expense_reports/{expense_report}/expenses/create', 'ExpenseController@create');

      • Route::get('/expense_reports/{expense_report}/expenses', 'ExpenseController@store'); Consecuentemente se empieza creando una carpeta nueva en views con los archivos de las nuevas rutas y luego se procede configurando el método create del controlador nuevo.

      Me genero errores la carga de los expense, si le pasa lo mismo únicamente deben de agregar la ruta "use App\ExpenseReport"; en la parte superior del código en el controlador

      Cuando voy a submit, del formulario expense me sale este error:

      Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException The POST method is not supported for this route. Supported methods: GET, HEAD. http://127.0.0.1:8000/expense_reports/2/expenses

      Tú problema está en la ruta que estás usando para guardar los detalles del Expense. Recuerda que estás usando el método post, por lo tanto en tus routes.php debes tenerlo definido como:

      Route::post('/expense_reports/{expense_report}/expenses','ExpenseController@store');

      En donde, post es el método que estás usando y que estás enviadno desde tu formulario, me comentas, espero te sirva.

      Confirma que estes llamando correctamente al modelo, inmediatamente despues del namespace asi:

      use App\Models\ExpenseReport;

      Para solucionar el error: " Target class [ExpenseController] does not exist. " en Laravel 8, tomar en cuenta que en routes>web.php, debe quedar de la siguiente manera:

      .... use App\Http\Controllers\ExpenseController; .... Route::get('/expense_reports/{expense_report}/expenses/create', [ExpenseController::class, 'create']); Route::post('/expense_reports/{expense_report}/expenses', [ExpenseController::class, 'store']);

      Te agrego que en mi caso tuve que incorporar al inicio del ExpenseController.php

      use App\Models\ExpenseReport; use App\Models\Expense;

      Saludos

      Tengo un problema, en create ni en store me reconoce el parametro ExpenseReport $expenseReport en las funciones para obtener luego el id, a que puede deberse? en la primeras lineas del archivo tengo puesto tanto use App\Expense como App\ExpenseReport

      Hola @eantillanca por favor coloca un ejemplo de tu codigo para poder ayudarte.

      yo tenia el mismo problema. No se como lo resolvi (jajajaja) aqui te dejo mi codigo para que lo veas, tal vez te sea de ayuda

      <?php namespace App\Http\Controllers; use App\ExpenseReport; use App\Expense; use Illuminate\Http\Request; class ExpensesController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { // } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create(ExpenseReport $expenseReport) { return view('expenses.create' , [ 'report' => $expenseReport ]); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request, ExpenseReport $expenseReport) { $expense = new Expense(); $expense->description = $request->get('description'); $expense->amount = $request->get('amount'); $expense->expense_report_id = $expenseReport->id; $expense->save(); return redirect('expense_reports/' . $expenseReport->id); }

      Solución reto, validación amount y description en Expenses

      public function store(Request $request, ExpenseReport $expenseReport) { $expense = new Expense(); $validData = $request->validate([ 'description' => 'required|min:3', 'amount' => 'required|numeric' ]); $expense->description = $validData['description']; $expense->amount = $validData['amount']; $expense->expense_report_id = $expenseReport->id; $expense->save(); return redirect('/expense_reports/' . $expenseReport->id); }

      Bien lo de validar amount como numeric pero te falta validar el rango del número, te quedaría

      'amount' => 'required|numeric|between:0,999999.99'

      Tengo un problema, en el método store no me reconoce el parametro ExpenseReport $expenseReport en la función para obtener luego el id. ¿Qué podrá ser?

      Confirma que estes llamando correctamente al modelo, inmediatamente despues del namespace asi:

      use App\Models\ExpenseReport;

      Se puede crear un archivo de migración a partir de la base de datos? Es que tengo una echa y la quiero utilizar aquí.

      En este caso bastaría con configurar el nombre de tu base de datos en tu archivo .env.

      Cambias:

      DB_DATABASE=miBaseDeDatos

      **Por: **

      DB_DATABASE=miNuevaBaseDeDatos

      Allí le seteas el nombre de tu base de datos y ya estaría usando tu base de datos. Aún así necesitas crear los modelos para poder conectarte a cada una de las tablas de tu db.

      Recuerda que cada vez que realizas cambios en el archivo .env debes correr los comandos:

      php artisan cache:clear php artisan config:cache

      Espero te sea de ayuda.

      Puedes hacer con el paquete Xethron/migrations-generator. Cuidado porque parece que de momento no tiene soporte para Laravel 6!

      Tengo este problema al tratar de mostrar los datos en el show

      ErrorException Trying to get property 'description' of non-object (View: C:\laragon\www\proyecto_laravel\resources\views\

      El problema se genera en la vista, estas haciendo algo como esto:

      {{ $objeto->description }}

      El error te esta indicando que no puede encontrar una propiedad description

      Posiblmente porque no estas pasando el objeto correctamente, confirma que desde el controlador estes pasando el objeto con el mismo nombre que la vista espera recibir.

      asi:

      $objeto = 'aqui estas indicando que objeto pasar'; return view('nombre_vista', compact('objeto'));

      Y en ultima instancia puede ser tambien que no estes pasando un objeto sino un arreglo, eso suele suceder tambien.

      Hola, una pregunta: ¿Por qué en las ruta de create de Expense se pone como parámetro de envío {expense_report} y no la variable {id}?

      Porque la variable $id la "guarda" para el ámbito local de la clase Expense, es decir, la clase Expense también tiene su propio $id y como está en dicha clase, es mejor manejar el MODEL BINDING

      No sé si en el curso faltó comentar o yo no escuché que el Model Binding ocupa una "type-hinted variable". Aunque veo que a muchos les ha pasado lo mismo que a mí.

      Para que esta variable entienda que debe buscar una coincidencia del modelo con lo que llega en una variable, el nombre de la variable DEBE coincidir con el nombre de la variable de la ruta.

      Es decir: si en la ruta "/foo/{bar}/baz" esperas que "bar" sea traducido a un modelo por el model binding, en el controlador el nombre de la variable DEBE ser $bar. public function create (Model $bar) Sólo de esa manera laravel entiende que la variable bar se debe buscar dentro del modelo Model.

      Comparto la tarea, validar campos de la vista expense.create

      reto-validar.png

      Alguien me podria ayudar con este error porfavor:

      error2.png

      Este error me sale cuando doy click a submit del new expense

      Comprueba que hayas copiado la vista de create y no la de edit, porque a mí me dio ese error en unas clases atrás creando esa vista, y era porque necesitaba poner un campo oculto con el método put. Pero en esta clase no ha usado el método PUT en ningún momento, entonces igual es por eso, no lo sé.

      Si pones una captura del código de la vista de create expense será más fácil echarte una mano!! :)

      Verifica la dirección que tienes colocada en el form