✏️ Insertar registros con Eloquent
En esta lección aprenderás cómo agregar nuevos registros a la base de datos utilizando Eloquent ORM. Laravel ofrece varias formas sencillas y limpias para insertar datos sin necesidad de escribir sentencias SQL manuales.
🧱 1️⃣ Crear un nuevo registro con el método save()
La forma más tradicional de insertar datos con Eloquent es crear una nueva instancia del modelo, asignar valores y guardar con save():
use App\Models\Producto;
$producto = new Producto();
$producto->nombre = 'Monitor LED 24 pulgadas';
$producto->precio = 149.99;
$producto->stock = 10;
$producto->save();
💡 Este método inserta un nuevo registro en la tabla productos automáticamente, usando la conexión definida en .env.
⚡ 2️⃣ Crear registros con el método create()
Laravel permite crear registros directamente con el método create(), que es más compacto y rápido:
Producto::create([
'nombre' => 'Ratón inalámbrico',
'precio' => 19.90,
'stock' => 30
]);
📘 Para usar create() debes permitir la asignación masiva configurando el atributo $fillable en tu modelo:
class Producto extends Model
{
protected $fillable = ['nombre', 'precio', 'stock'];
}
⚠️ Si no defines $fillable, Laravel bloqueará la inserción masiva por seguridad (protección contra Mass Assignment).
🧰 3️⃣ Insertar múltiples registros a la vez
Si necesitas insertar varios registros en una sola operación, puedes usar el método insert() de Eloquent o del Query Builder:
Producto::insert([
['nombre' => 'Teclado mecánico', 'precio' => 59.99, 'stock' => 15],
['nombre' => 'Auriculares gamer', 'precio' => 89.50, 'stock' => 20],
['nombre' => 'Webcam HD', 'precio' => 39.99, 'stock' => 25],
]);
💡 insert() no ejecuta los eventos de Eloquent ni retorna modelos; es útil para inserciones masivas simples.
📦 4️⃣ Insertar desde un formulario
En la práctica, los datos a insertar suelen provenir de un formulario HTML. Así podríamos manejarlo en el controlador:
public function store(Request $request)
{
Producto::create([
'nombre' => $request->nombre,
'precio' => $request->precio,
'stock' => $request->stock
]);
return redirect()->route('productos.index')
->with('success', 'Producto agregado correctamente.');
}
Y en la vista Blade del formulario:
🔐 El uso de @csrf protege el formulario contra ataques CSRF (Cross-Site Request Forgery).
✅ Conclusión
- ✏️ Puedes insertar registros con
save()o concreate(). - ⚙️ Define el arreglo
$fillablepara habilitar la asignación masiva. - 📦 Usa
insert()para operaciones en lote sin sobrecarga de eventos. - 💡 Laravel facilita el trabajo con formularios y protege tus datos automáticamente.
En la próxima lección veremos cómo actualizar registros con Eloquent de forma sencilla y segura.
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias