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.