ฟังก์ชัน scopes() คืออะไร?
ฟังก์ชัน scopes() ที่ Model ใน Yii คืออะไร?
- คำว่า scopes ถ้าแปล จะหมายถึง ขอบเขต
- scopes() จะทำงานร่วมกันกับ Active Record class
- ฟังก์ชันนี้จะถูกเขียนไว้ที่ Model
- ฟังก์ชัน scopes() เป็นการสร้างกลุ่มการค้นหา เช่น publish (เผยแพร่), recently (ข้อมูลล่าสุด) [สามารถตั้งชื่อได้ตามอัธยาศัย]
ตัวอย่าง จะกำหนดให้ Query ข้อมูลที่สามารถเผยแพร่ได้ (กำหนดให้สถานะ = 1 คือ เผยแพร่ได้) กับ ข้อมูลล่าสุด 5 อันดับ จะสามารถเขียนโค้ดได้ดังนี้
return array( 'published'=>array( 'condition'=>'status=1', ), 'recently'=>array( 'order'=>'create_time DESC', 'limit'=>5, ), );
ถ้า scopes ด้านบนถูกเขียนไว้ที่ Model ที่ชื่อว่า "Post" จะสามารถเรียกใช้ได้ โดยใช้คำสั่ง ดังนี้
$posts=Post::model()->published()->findAll(); $posts=Post::model()->published()->recently()->findAll(); $posts=Post::model()->published()->with('comments')->findAll();
0 ความคิดเห็น:
แสดงความคิดเห็น