Insert - mayako/Spaguetti GitHub Wiki

Inserción individual

El método insert convierte la consulta de selección a una inserción:

# INSERT INTO users(name) VALUES('Jhon')
$inserted = DB::table('users')->insert(['name' => 'Jhon']);

Obteniendo el ID

Si deseas obtener el ID creado en la tabla, puedes hacer uso del método insert_get_id

$id = DB::table('users')->insert_get_id(['name' => 'Yako']);

Este método solo sirve en caso de inserciones individuales.

Inserciones múltiples

Para inserciones múltiples, solo se debe de pasar como argumento un arreglo múltiple:

# INSERT INTO users(name) VALUES('Jhon'),('Dave')
DB::table('users')->insert([
  [ 'name' => 'Jhon'],
  [ 'name' => 'Dave']
]);

En este caso, se toma el nombre de las columnas de los indices del primer registro.

Inserción por selección

El método insert también es útil para hacer inserciones en base a resultados de una selección. Toma como primer argumento un arreglo con el nombre de las columnas a insertar, y como segundo una instancia de la clase Query sin ejecutar:

# INSERT INTO users(name) SELECT name FROM admin;
DB::table('usuarios')->insert(['name'], DB::table('admin')->select('name'));

No funciona con el metodo insert_get_id debido a que no se sabe cuantos registros tendrá la consulta.