การ Insert database ใน laravel นั้นเราสามารถทำได้หลายวิธี เช่น สร้าง instant ของ Model หรือเรียกผ่าน Static method ของ model ก็ได้ ยกตัวอย่าง
// สร้าง instant ของ model เพื่อ Create
$coder = new Coder;
$coder->name = 'Itthipat';
$coder->save();
// สร้างผ่าน Static Method แบบ Mass create
Coder::create([
'name' => 'Itthipat',
]);
แต่ทั้งหมดที่พูดถึงไปถ้าเราต้องการ insert ข้อมูลที่มาจาก Array ลง Database ด้วย code บรรทัดเดียวเราจะทำได้ยังไง ? แน่นอนว่าหลายคนอาจจะมองไปถึง foreach แล้ว insert เอาแบบนี้
$names = [
[
'name' => 'Itthipat',
],
[
'name' => 'John',
]
];
foreach($names as $name) {
Coder::create($name);
}
ซึ่งเราสามารถลดความซ้ำซ้อนของ code ได้โดยการใช้ insert method แบบนี้เพื่อ insert ข้อมูล array ที่เราเตรียมไว้ได้ทันที
$names = [
[
'name' => 'Itthipat',
],
[
'name' => 'John',
]
];
Coder::insert($names);
เพียงเท่านี้ code เราก็จะดูสวยขึ้น 20% ฮ่าๆ ยังไงเพื่อนๆลองเอาไปเล่นดูนะครับ