Insert หลาย row พร้อมกันด้วย eloquent ORM

Insert ข้อมูลพร้อมกันใน Laravel

การ 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% ฮ่าๆ ยังไงเพื่อนๆลองเอาไปเล่นดูนะครับ

เกี่ยวกับผู้เขียน

ITTHIPAT

สวัสดีครับผม อิทธิพัทธ์ (เป้) ชอบหาเทคนิคต่างๆที่ทำให้ชีวิต Programmer ง่ายขึ้น ทั้ง Automate, Library ชอบทำ Blog และ Video ถ้ามีเวลานะ!

ขอบคุณทุกคนที่ติดตาม และอ่านบทความของผมครับ ผมหวังว่าความรู้ที่เขียนขึ้นในเว็บไซต์นี้จะช่วยทุกท่านได้ไม่มากก็น้อย 

Scroll to Top