¿Cuál es la diferencia entre usar los métodos Create y Save para crear un nuevo Post?

Carlos Zabala Roqueme

Carlos Zabala Roqueme

Pregunta
student
hace 4 años

¿Cuál es la diferencia entre usar los métodos Create y Save para crear un nuevo Post?

1 respuestas
para escribir tu comentario
    Carlos Eduardo Gomez García

    Carlos Eduardo Gomez García

    teacher
    hace 4 años

    Realmente no hay mucha diferencia, pero cuando usas

    create
    estás usando una creación masiva de registros (que no te asuste el nombre, eso de "masivo" significa solamente que estás insertando varios datos en una sola consulta), por lo que para que puedas hacer esto necesitas definir dichas columnas dentro de tu modelo en un array llamado
    $fillable
    . Esto es a modo de protección, para que no se inserten datos que tú no quieres insertar, ya que al ser masivo tú debes pasarle un array con los datos a insertar, pero en ese array se pueden colar cosas que no quieres insertar.

    En cambio con

    save()
    tú vas creando registro por registro. Es un poco más seguro porque solo insertas los registros que necesitas y al final haces el
    save()
    para guardarlos :D

    En resumen,

    create()
    te permite insertar varias columnas de golpe pasándole un array, pero en ese array se te pueden colar datos que no quieres insertar, y
    save()
    te permite hacerlo uno por uno para que puedas insertar solo los datos que quieres :D

Curso de Introducción a Laravel

Curso de Introducción a Laravel

Crea un blog desde cero con Laravel usando TDD. Aprende a gestionar contenido, validar datos, y proteger tu API con autenticación de token. Configura rutas, controladores y vistas utilizando el sistema de plantillas Blade.

Curso de Introducción a Laravel
Curso de Introducción a Laravel

Curso de Introducción a Laravel

Crea un blog desde cero con Laravel usando TDD. Aprende a gestionar contenido, validar datos, y proteger tu API con autenticación de token. Configura rutas, controladores y vistas utilizando el sistema de plantillas Blade.