Menu

Tuesday, September 17, 2019

[Laravel - Model] สรุป syntax ต่างๆของ where หรือ orWhere ที่ใช้ในการ Query
[Laravel - Model] Syntax of where or orWhere that is used in Query

สมมติว่า User เป็น model ของ Laravel ซึ่งมีตารางที่คู่กัน คือ users

หากเราต้องการเรียกดูข้อมูล user ที่มี name เป็น 'test'

สำหรับ SQL ก็คือ
select * from users where name = 'test';
สำหรับ Laravel สามารถใช้ syntax ได้ตามข้างล่างนี้
  1. User::where('name', 'test')->get(); 
  2. User::where('name', '=', 'test')->get();
  3. User::where(['name' => 'test'])->get();
  4. User::where([['name', '=', 'test']])->get();
  5. User::where(function($q){ 
        $q->where('name', 'test');
    })->get();
ทั้ง 5 รูปแบบข้างต้น จะถูกแปลงเป็น SQL ตามข้างต้นในการ Query ข้อมูลจาก database

หมายเหตุ รูปแบบที่ 5 เป็นการส่ง parameter แบบ Closure สำหรับการ Query ที่ซับซ้อน ซึ่งภายใน Closure นี้สามารถใช้ where ได้ตาม syntax ข้างบนเช่นกัน

นอกเหนือจาก where แล้ว ยังมี orWhere ที่ใช้ syntax เช่นดียวกับ where แต่ตัวเชื่อม SQL statement จะเปลี่ยนจาก and เป็น or

ทั้ง 2 functions ข้างต้นสามารถใช้งานร่วมกันได้ เช่น หากเราต้องการเรียกดูข้อมูล user ที่มี name เป็น 'test' หรือ user ที่มี age มากกว่า 20 ปี

สำหรับ SQL ก็คือ
select * from users where name = 'test' or age > 20;
สำหรับ Laravel ก็คือ
User::where('name', 'test')
    ->orWhere('age', 20)
    ->get();

No comments:

Post a Comment