CursosEmpresasBlogLiveConfPrecios

Trabajando con relaciones

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

    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
    Login

    Login

    09:38 min

Cierre

  • 25
    Cierre

    Cierre

    01:09 min
Tomar examen
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
        Paul Cortes

        Paul Cortes

        student•
        hace 6 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']); }); } }
          Felix Michael Hernandez Flery

          Felix Michael Hernandez Flery

          student•
          hace 6 años

          👍 Excelente aporte!!

          Jhonathan Alfonso

          Jhonathan Alfonso

          student•
          hace 6 años

          Gracias bro!

        Jimmy Buriticá Londoño

        Jimmy Buriticá Londoño

        student•
        hace 6 años

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

        use App\ExpenseReport; use App\Expense;
        Javier Andrés Poduje Alegría

        Javier Andrés Poduje Alegría

        student•
        hace 7 años

        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); }
          German Sayago

          German Sayago

          student•
          hace 7 años

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

          KEVIN BRAYAN LUNA FIGUEROA

          KEVIN BRAYAN LUNA FIGUEROA

          student•
          hace 7 años

          @germansayago como dices mejor si, se utiliza numeric

        Geraldin Valencia Valencia

        Geraldin Valencia Valencia

        student•
        hace 6 años

        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.

          Paolo Restuccia Restuccia

          Paolo Restuccia Restuccia

          student•
          hace 6 años

          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.

          Esteban Cabrera Gómez

          Esteban Cabrera Gómez

          student•
          hace 6 años

          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

        Sergio Andrés Martínez Ramírez

        Sergio Andrés Martínez Ramírez

        student•
        hace 6 años

        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">
          Franz Eduardo Tejada Valencia

          Franz Eduardo Tejada Valencia

          student•
          hace 5 años

          Fue de gran ayuda, gracias.

          Omar Villafuerte

          Omar Villafuerte

          student•
          hace 5 años

          Excelente aporte sin dudas!

        Sebastian Almiron

        Sebastian Almiron

        student•
        hace 7 años

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

        Jonathan De Jesus Meneses Marquez

        Jonathan De Jesus Meneses Marquez

        student•
        hace 6 años

        Me sucede esto:

        Class App/http/Controllers/ExpenseReport does not exist

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

          Sergio Veloza

          Sergio Veloza

          student•
          hace 6 años

          Hola!

          Para solucionar debes agregar

          use App\ExpenseReport;

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

          Sergio Veloza

          Sergio Veloza

          student•
          hace 6 años

          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

        Enrique Garcia Stave

        Enrique Garcia Stave

        student•
        hace 6 años

        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.
        Jairo Noguera

        Jairo Noguera

        student•
        hace 6 años

        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

        Mauro Páginas Web

        Mauro Páginas Web

        student•
        hace 6 años

        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

          Moisés Cedeño

          Moisés Cedeño

          student•
          hace 6 años

          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.

          Kenneth Angulo L

          Kenneth Angulo L

          student•
          hace 3 años

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

          use App\Models\ExpenseReport;
        Cesar Nilton Rojas Valero

        Cesar Nilton Rojas Valero

        student•
        hace 4 años

        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']);
          Mariano Costantino

          Mariano Costantino

          student•
          hace 4 años

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

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

          Saludos

        Erik Antillanca

        Erik Antillanca

        student•
        hace 7 años

        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

          Alfonso Navarro

          Alfonso Navarro

          company_admin•
          hace 7 años

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

          jean pierre gabriel nieto acosta

          jean pierre gabriel nieto acosta

          student•
          hace 7 años

          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); }
        Benny Franco

        Benny Franco

        student•
        hace 6 años

        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); }
          Félix Andersson

          Félix Andersson

          student•
          hace 6 años

          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'
        Jeison Daniel Torres Benavides

        Jeison Daniel Torres Benavides

        student•
        hace 4 años

        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?

          Kenneth Angulo L

          Kenneth Angulo L

          student•
          hace 3 años

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

          use App\Models\ExpenseReport;
        Noelia Iglesias Martínez

        Noelia Iglesias Martínez

        student•
        hace 6 años

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

          Moisés Cedeño

          Moisés Cedeño

          student•
          hace 6 años

          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.

          Fran Delgado

          Fran Delgado

          student•
          hace 6 años

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

        Brandon Pineda

        Brandon Pineda

        student•
        hace 4 años

        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\

          Kenneth Angulo L

          Kenneth Angulo L

          student•
          hace 3 años

          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.

        Enrique Garcia Stave

        Enrique Garcia Stave

        student•
        hace 6 años

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

          Germán QL

          Germán QL

          student•
          hace 6 años

          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

        Alejandro Atria

        Alejandro Atria

        student•
        hace un año

        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.

        Kenneth Angulo L

        Kenneth Angulo L

        student•
        hace 3 años

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

        reto-validar.png
        Usuario anónimo

        Usuario anónimo

        user•
        hace 6 años

        Alguien me podria ayudar con este error porfavor:

        error2.png

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

          Lorena Pena Verdú

          Lorena Pena Verdú

          student•
          hace 6 años

          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!! :)

          Daniel Hurtado

          Daniel Hurtado

          student•
          hace 6 años

          Verifica la dirección que tienes colocada en el form