php - กรณีการใช้งาน Laravel สำหรับ *มีความสัมพันธ์แบบ many ผ่าน*
ฉันมีตาราง participants
ที่ผู้เข้าร่วมแต่ละคนเป็นสมาชิกของการประชุม ซึ่งเป็นรายการในตาราง conferences
นอกจากนี้ ผู้เข้าร่วมแต่ละคนสามารถพิสูจน์{-รหัส-5}คำตอบ 1 ข้อซึ่งจัดเก็บไว้ในตาราง answers
ได้
ตอนนี้ ฉันต้องการคำถาม ซึ่งได้รับ ทั้งหมด answers จาก ทั้งหมด participants ซึ่ง เป็นของการประชุมปัจจุบัน
โดยเฉพาะอย่างยิ่ง ฉันต้องการแบ่งหน้าผลลัพธ์ ดังนั้นฉันจึงหวังว่าจะได้แนวทางที่ซับซ้อนกว่าการเรียก answers ทั้งหมดแล้วตรวจสอบว่าเป็นของผู้เข้าร่วมในการประชุมนี้หรือไม่< /p>
เพื่อความชัดเจน ตารางของฉันเก็บข้อมูลต่อไปนี้โดยทั่วไป:
participants
-id
,conference_id
conferences
- < รหัส>idanswers
-id
, < รหัส>ผู้เข้าร่วม_id
Answer
วิธีแก้ปัญหา:
คุณสามารถใช้ HasManyThrough ได้
ฉันคิดว่าตัวอย่างใน Laravel Doc เหมาะกับกรณีของคุณมากที่สุด
ตัวอย่าง Laravel Doc
Answer
วิธีแก้ปัญหา:
คุณสามารถใช้ความสัมพันธ์ระหว่าง hasMany
และ hasOne
ของ Laravel Eloquent Model และ เพิ่มข้อจำกัดเมื่อคุณใช้แบบสอบถาม Eloquent Relation Ship
(ตามเอกสาร Laravel กล่าวว่า Eloquent Relation Ship ทั้งหมดเป็นตัวสร้างแบบสอบถาม ดังนั้นคุณจึงสามารถเพิ่มข้อจำกัดโดยใช้ {-code-4 }
) เพื่อให้ได้ผลลัพธ์ตามที่คาดหวัง
Source