เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ
BelongsToManyRepository เป็น Relation Repository สำหรับจัดการความสัมพันธ์แบบ BelongsToMany ครับ/ค่ะ
ความสัมพันธ์แบบ BelongsToMany แตกต่างจากความสัมพันธ์ประเภทอื่น ๆ ตรงที่จำเป็นต้องบันทึกข้อมูลผ่านตารางเชื่อมโยง (junction table) ครับ/ค่ะ
เมื่อคุณกำหนดความสัมพันธ์ใน NocoBase คุณสามารถเลือกให้สร้างตารางเชื่อมโยงโดยอัตโนมัติ หรือจะระบุตารางเชื่อมโยงด้วยตัวเองก็ได้ครับ/ค่ะ
find()ค้นหาออบเจกต์ที่เกี่ยวข้อง
รูปแบบการใช้งาน (Signature)
async find(options?: FindOptions): Promise<M[]>รายละเอียด
พารามิเตอร์สำหรับการค้นหาจะเหมือนกับ Repository.find() ครับ/ค่ะ
findOne()ค้นหาออบเจกต์ที่เกี่ยวข้อง โดยจะคืนค่ากลับมาเพียงหนึ่งรายการเท่านั้นครับ/ค่ะ
รูปแบบการใช้งาน (Signature)
async findOne(options?: FindOneOptions): Promise<M>count()คืนค่าจำนวนรายการที่ตรงตามเงื่อนไขการค้นหาครับ/ค่ะ
รูปแบบการใช้งาน (Signature)
async count(options?: CountOptions)ประเภท (Type)
findAndCount()สอบถามข้อมูลจากฐานข้อมูลเพื่อดึงชุดข้อมูลและจำนวนผลลัพธ์ทั้งหมดภายใต้เงื่อนไขที่กำหนดครับ/ค่ะ
รูปแบบการใช้งาน (Signature)
async findAndCount(options?: FindAndCountOptions): Promise<[any[], number]>ประเภท (Type)
create()สร้างออบเจกต์ที่เกี่ยวข้อง
รูปแบบการใช้งาน (Signature)
async create(options?: CreateOptions): Promise<M>update()อัปเดตออบเจกต์ที่เกี่ยวข้องที่ตรงตามเงื่อนไข
รูปแบบการใช้งาน (Signature)
async update(options?: UpdateOptions): Promise<M>destroy()ลบออบเจกต์ที่เกี่ยวข้องที่ตรงตามเงื่อนไข
รูปแบบการใช้งาน (Signature)
async destroy(options?: TargetKey | TargetKey[] | DestroyOptions): Promise<Boolean>add()เพิ่มออบเจกต์ที่เกี่ยวข้องใหม่
รูปแบบการใช้งาน (Signature)
async add( options: TargetKey | TargetKey[] | PrimaryKeyWithThroughValues | PrimaryKeyWithThroughValues[] | AssociatedOptions ): Promise<void>ประเภท (Type)
รายละเอียด
คุณสามารถส่ง targetKey ของออบเจกต์ที่เกี่ยวข้องเข้ามาโดยตรง หรือจะส่ง targetKey พร้อมกับค่าฟิลด์ของตารางเชื่อมโยง (junction table) เข้ามาพร้อมกันก็ได้ครับ/ค่ะ
ตัวอย่าง
set()กำหนดออบเจกต์ที่เกี่ยวข้อง
รูปแบบการใช้งาน (Signature)
รายละเอียด
พารามิเตอร์จะเหมือนกับเมธอด add() ครับ/ค่ะ
remove()ลบความสัมพันธ์กับออบเจกต์ที่กำหนด
รูปแบบการใช้งาน (Signature)
async remove(options: TargetKey | TargetKey[] | AssociatedOptions)ประเภท (Type)
toggle()สลับสถานะของออบเจกต์ที่เกี่ยวข้อง
ในบางสถานการณ์ทางธุรกิจ เรามักจะต้องสลับสถานะของออบเจกต์ที่เกี่ยวข้องอยู่บ่อยครั้งครับ/ค่ะ เช่น ผู้ใช้สามารถกดถูกใจสินค้า, ยกเลิกถูกใจ, และกดถูกใจอีกครั้งได้ เมธอด toggle ช่วยให้คุณสามารถสร้างฟังก์ชันการทำงานแบบนี้ได้อย่างรวดเร็วครับ/ค่ะ
รูปแบบการใช้งาน (Signature)
async toggle(options: TargetKey | { tk?: TargetKey; transaction?: Transaction }): Promise<void>รายละเอียด
เมธอด toggle จะตรวจสอบโดยอัตโนมัติว่าออบเจกต์ที่เกี่ยวข้องมีอยู่แล้วหรือไม่ ถ้ามีอยู่ก็จะถูกลบออกไป แต่ถ้ายังไม่มีก็จะถูกเพิ่มเข้ามาครับ/ค่ะ