php - กรณีการใช้งาน Laravel สำหรับ *มีความสัมพันธ์แบบ many ผ่าน*

ฉันมีตาราง participants ที่ผู้เข้าร่วมแต่ละคนเป็นสมาชิกของการประชุม ซึ่งเป็นรายการในตาราง conferences นอกจากนี้ ผู้เข้าร่วมแต่ละคนสามารถพิสูจน์{-รหัส-5}คำตอบ 1 ข้อซึ่งจัดเก็บไว้ในตาราง answers ได้


ตอนนี้ ฉันต้องการคำถาม ซึ่งได้รับ ทั้งหมด answers จาก ทั้งหมด participants ซึ่ง เป็นของการประชุมปัจจุบัน


โดยเฉพาะอย่างยิ่ง ฉันต้องการแบ่งหน้าผลลัพธ์ ดังนั้นฉันจึงหวังว่าจะได้แนวทางที่ซับซ้อนกว่าการเรียก answers ทั้งหมดแล้วตรวจสอบว่าเป็นของผู้เข้าร่วมในการประชุมนี้หรือไม่< /p>

เพื่อความชัดเจน ตารางของฉันเก็บข้อมูลต่อไปนี้โดยทั่วไป:



  • participants - id, conference_id

  • conferences - < รหัส>id

  • answers - id, < รหัส>ผู้เข้าร่วม_id


Answer

วิธีแก้ปัญหา:

คุณสามารถใช้ HasManyThrough ได้
ฉันคิดว่าตัวอย่างใน Laravel Doc เหมาะกับกรณีของคุณมากที่สุด
ตัวอย่าง Laravel Doc


Answer

วิธีแก้ปัญหา:

คุณสามารถใช้ความสัมพันธ์ระหว่าง hasMany และ hasOne ของ Laravel Eloquent Model และ เพิ่มข้อจำกัดเมื่อคุณใช้แบบสอบถาม Eloquent Relation Ship (ตามเอกสาร Laravel กล่าวว่า Eloquent Relation Ship ทั้งหมดเป็นตัวสร้างแบบสอบถาม ดังนั้นคุณจึงสามารถเพิ่มข้อจำกัดโดยใช้ {-code-4 }) เพื่อให้ได้ผลลัพธ์ตามที่คาดหวัง


Source