Contenido del curso
Fundamentos de Laravel
- 3

Qué es Artisan y cómo automatiza Laravel
04:23 min - 4

Rutas básicas en Laravel con web.php
06:44 min - 5

Cómo retornar vistas Blade en Laravel
07:02 min - 6

Plantillas Blade para vistas sin código repetido
06:03 min - 7

Controladores en Laravel con Artisan
07:17 min - 8

Migraciones en Laravel como control de versiones
07:01 min - 9

Modelos y factories en Laravel con datos falsos
06:56 min - 10

Consultas a base de datos con Eloquent
08:26 min - 11

Relaciones entre tablas con belongsTo en Laravel
05:37 min
Manos a la obra con nuestro proyecto
- 12

Revisión de arquitectura MVC en Laravel
02:15 min - 13

Instala el login de Laravel con Breeze
05:41 min - 14

Rutas de login y logout en Laravel Breeze
04:22 min - 15

Rutas y vistas con Route::resource en Laravel
03:59 min - 16

Listado de posts con paginación en Laravel
04:36 min - 17

Formulario para eliminar registros en Laravel
04:53 min - 18

Vistas de creación y edición con formulario compartido
06:49 min - 19

Formulario CRUD reutilizable en Laravel
05:02 min - 20

Guardar registros con relaciones en Laravel
Viendo ahora - 21

Método update en Laravel sin reescribir código
01:44 min - 22

Validación de formularios en Laravel con old()
04:43 min - 23

Validación unique en Laravel sin duplicados
05:32 min
Trabajemos en el diseño web de nuestro proyecto
- 24

Diseño del header con Tailwind y Laravel
06:38 min - 25

Divisor con gradiente en Tailwind CSS
03:50 min - 26

Construye la vista home de tu blog en Laravel
06:36 min - 27

Sección destacada con posicionamiento absoluto en Tailwind
04:15 min - 28

Diseño de página de publicación con Tailwind
02:33 min - 29

Formulario de búsqueda con Laravel y LIKE
04:18 min - 30

Cómo detectar el problema N+1 en Laravel
06:12 min
Cierre
Guardar registros con relaciones en Laravel
Resumen
Crear un nuevo registro en Laravel implica más que enviar un formulario: necesitas configurar el método store, definir relaciones entre entidades y habilitar la asignación masiva. Aprenderás a guardar publicaciones asociadas a un usuario logueado y redirigir a la vista de edición, paso a paso, siguiendo los errores que el propio framework te muestra.
¿Por qué falla el método store al enviar el formulario?
Cuando envías un formulario sin haber declarado el método correspondiente en el controlador, Laravel lanza un error claro: el método no existe. Y eso, lejos de ser un problema, es tu mejor guía.
Al probar el formulario con valores como A y B, el sistema responde que store no está definido. Ese error es la señal para empezar a construir la lógica de guardado. Copias la estructura base del controlador, la renombras a store y recibes la información del usuario mediante la clase de request.
¿Qué hace el método store en Laravel? Es el método que recibe los datos enviados por un formulario y los persiste en la base de datos. Por convención, se invoca cuando haces un POST a una ruta de creación.
¿Cómo asocio una publicación al usuario logueado?
La publicación no se crea de forma aislada: se crea desde el usuario que está autenticado en ese momento. Esa información ya vive dentro de la request.
Escribes algo como $request->user()->publicaciones()->create([...]), donde publicaciones() es el método de relación que aún no existe. Dentro del create pasas tres campos:
titulo, que tomas directamente del formulario.url_amigable, que generas conStr::slug($titulo).body, que también viene del formulario.
Para usar Str::slug necesitas importar la clase con use Illuminate\Support\Str;. Conviene ordenar los use alfabéticamente: primero los tuyos, luego los del framework, manteniendo R antes que S.
Después del guardado, defines una redirección a la ruta de edición pasando el registro recién creado como parámetro. Así el usuario aterriza en la vista correcta justo después de guardar.
¿Cómo defino la relación hasMany entre usuario y publicaciones?
Al actualizar, el siguiente error que aparece dice que el método no está definido. Eso significa que la relación entre el usuario y sus publicaciones aún no existe en la entidad.
Entras al modelo de usuarios, vas al final y declaras un método llamado publicaciones, en plural, porque un usuario puede tener muchas. La configuración es directa:
php public function publicaciones() { return $this->hasMany(Publicacion::class); }
Con hasMany le dices a Laravel que un usuario está vinculado a múltiples registros de la entidad Publicacion. Es la forma estándar de modelar relaciones uno a muchos en Eloquent.
¿Qué significa hasMany en Eloquent? Es la relación que indica que un modelo padre puede tener varios hijos. Un usuario tiene muchas publicaciones, pero cada publicación pertenece a un único usuario.
¿Por qué Laravel bloquea la asignación masiva y cómo la habilito?
Resuelta la relación, aparece otro error: el sistema no permite la mass assignment porque la propiedad no está declarada como asignable. Es una protección por defecto de Eloquent contra escrituras no controladas.
Estás enviando tres campos —título, URL amigable y body— y ninguno está autorizado en el modelo Publicacion. La solución es replicar la configuración que ya existe en el modelo de usuario y pegarla en publicaciones, declarando la propiedad $fillable con los tres campos:
titulo.url_amigable.body.
Con esa lista, Eloquent acepta crear el registro pasando un array asociativo, sin que cada campo tenga que asignarse manualmente.
¿Qué es la asignación masiva en Laravel? Es la capacidad de crear o actualizar un registro pasando un array de datos en una sola línea. Para evitar inyecciones no deseadas, Laravel exige declarar qué columnas son asignables mediante la propiedad
$fillable.
¿Cómo verifico que el flujo de creación funciona de extremo a extremo?
Después de declarar $fillable, vuelves al formulario, escribes un título y un body, envías, y el sistema redirige a la vista de editar. Al hacer clic en volver, encuentras el nuevo registro en el listado, listo para eliminarse o editarse.
El proceso completo se sostiene en una idea: dejar que los errores del framework te guíen. Primero el método inexistente, luego la relación faltante, después la asignación masiva bloqueada. Cada error es una pista que apunta exactamente al siguiente paso.
Con esto ya tienes la función de crear un nuevo registro funcionando. La siguiente pieza del rompecabezas es configurar la edición, y para eso necesitas tener este flujo bien afianzado. ¿Hasta qué punto del proceso lograste avanzar? Cuéntame en los comentarios qué error de Laravel te ayudó más a entender la lógica.