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

การ 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 Thitsarak

สวัสดีครับผม อิทธิพัทธ์ (เป้) เป็น Freelance Web developer ชอบหาเทคนิคต่างๆที่ทำให้ชีวิต Programmer ง่ายขึ้นโดย Blog นี้จะ สอน Laravel, Vuejs, CSS, HTML 5 และอื่นๆ ที่เกี่ยวกับการทำเว็บไซต์

ขอบคุณทุกคนที่ติดตาม และอ่านบทความของผมครับ หากใครมีคำถามหรืออยากให้ผมเขียนเกี่ยวกับเรื่องอะไรเพิ่มเติม สามารถแสดงความคิดเห็นไว้ที่ใต้บทความ หรือส่งเรื่องเข้ามาที่ Email ได้เลยครับ หัวข้อไหนน่าสนใจ ผมจะหยิบมาเขียนบทความให้ได้อ่านกันเรื่อยๆครับ

Scroll to Top