Eloquent ORM เป็นเครื่องมือใน Laravel ที่ช่วยให้เราสามารถทำงานกับฐานข้อมูลได้อย่างง่ายดายและมีประสิทธิภาพ โดยไม่จำเป็นต้องเขียนคำสั่ง SQL โดยตรง Eloquent ช่วยให้สามารถดึงข้อมูล เพิ่ม แก้ไข และลบข้อมูลในตารางได้สะดวกมากขึ้นด้วยการใช้เมธอดต่างๆ ที่อ่านง่ายและเข้าใจง่าย
การดึงข้อมูลจากฐานข้อมูลด้วย Eloquent ORM
1. การดึงข้อมูลทั้งหมด
เราสามารถใช้เมธอด all()
เพื่อดึงข้อมูลทั้งหมดจาก Model ได้ ซึ่งจะดึงข้อมูลทุกแถวจากตารางที่เชื่อมต่อกับ Model นั้นๆ
1 2 3 | use App\Models\Product; $products = Product::all(); |
2. การค้นหาข้อมูลด้วย Primary Key
การค้นหาข้อมูลด้วย Primary Key สามารถใช้เมธอด find()
โดยใส่ค่าของ Primary Key เป็นพารามิเตอร์
1 | $product = Product::find(1); |
ในตัวอย่างนี้จะดึงข้อมูลของสินค้าที่มี id
เท่ากับ 1
3. การใช้เงื่อนไขในการ Query
Eloquent มีเมธอดที่ช่วยให้เราสามารถใช้เงื่อนไขได้ เช่น where()
ซึ่งสามารถใช้เพื่อกรองข้อมูลที่ต้องการได้ โดยสามารถใช้ get()
เพื่อดึงข้อมูลทั้งหมดที่ตรงกับเงื่อนไข หรือ first()
เพื่อดึงข้อมูลแถวแรกที่ตรงกับเงื่อนไข
1 2 3 4 5 | // ดึงสินค้าที่มีราคา 500 บาท $products = Product::where( 'price' , 500)->get(); // ดึงสินค้าที่มีชื่อ "Laptop" $product = Product::where( 'name' , 'Laptop' )->first(); |
4. การจัดเรียงข้อมูล
Eloquent มีเมธอด orderBy()
สำหรับจัดเรียงข้อมูลในลำดับที่ต้องการ เช่น จากน้อยไปมาก หรือจากมากไปน้อย
1 |
5. การจำกัดจำนวนข้อมูลที่ดึงมา
เมธอด limit()
และ take()
ใช้สำหรับกำหนดจำนวนข้อมูลที่ต้องการดึงมาแสดง
1 2 3 4 5 | // ดึงสินค้าจำนวน 5 รายการแรก $products = Product::limit(5)->get(); // หรือใช้ take() $products = Product::take(5)->get(); |
การ Query ข้อมูลแบบซับซ้อน
1. การ Query แบบ AND และ OR
เราสามารถใช้ where()
หลายครั้งเพื่อสร้างเงื่อนไข AND และใช้ orWhere()
เพื่อสร้างเงื่อนไข OR
1 2 3 4 5 | // ดึงสินค้าที่มีราคา 500 บาทและมีสต็อกมากกว่า 10 $products = Product::where( 'price' , 500)->where( 'stock' , '>' , 10)->get(); // ดึงสินค้าที่มีราคา 500 บาทหรือมีสต็อกมากกว่า 10 $products = Product::where( 'price' , 500)->orWhere( 'stock' , '>' , 10)->get(); |
2. การใช้ Query แบบ Aggregates
Eloquent รองรับการทำงานแบบ Aggregate เช่น การหาค่าสูงสุด (max), ต่ำสุด (min), ค่าเฉลี่ย (avg), ผลรวม (sum) และการนับจำนวน (count)
1 2 3 4 5 | // หาราคาสูงสุดของสินค้า $maxPrice = Product::max( 'price' ); // หาจำนวนสินค้าที่มีในตาราง $productCount = Product:: count (); |
การนำไปใช้งาน
การ Query ข้อมูลด้วย Eloquent ORM ทำให้การจัดการข้อมูลใน Laravel เป็นไปได้ง่ายดาย สามารถใช้คำสั่งเพื่อดึงข้อมูลที่ซับซ้อนและจัดเรียงข้อมูลได้อย่างรวดเร็ว โดยไม่จำเป็นต้องเขียน SQL โดยตรง ช่วยให้นักพัฒนาทำงานกับฐานข้อมูลได้อย่างปลอดภัยและสะดวก