تمت ترجمة هذه الوثائق تلقائيًا بواسطة الذكاء الاصطناعي.
BelongsToManyRepository هو Relation Repository يُستخدم للتعامل مع علاقات BelongsToMany.
على عكس أنواع العلاقات الأخرى، تتطلب علاقات BelongsToMany التسجيل عبر جدول وسيط (junction table).
عند تعريف علاقة ارتباط في NocoBase، يمكن إنشاء جدول وسيط تلقائيًا، أو يمكن تحديده بشكل صريح.
find()البحث عن الكائنات المرتبطة
التوقيع
async find(options?: FindOptions): Promise<M[]>التفاصيل
تتوافق معلمات الاستعلام مع Repository.find().
findOne()البحث عن كائن مرتبط، وإرجاع سجل واحد فقط
التوقيع
async findOne(options?: FindOneOptions): Promise<M>count()يُرجع عدد السجلات التي تتطابق مع شروط الاستعلام
التوقيع
async count(options?: CountOptions)النوع
findAndCount()يستعلم قاعدة البيانات عن مجموعة بيانات والعدد الإجمالي تحت شروط محددة.
التوقيع
async findAndCount(options?: FindAndCountOptions): Promise<[any[], number]>النوع
create()إنشاء كائن مرتبط
التوقيع
async create(options?: CreateOptions): Promise<M>update()تحديث الكائنات المرتبطة التي تستوفي الشروط
التوقيع
async update(options?: UpdateOptions): Promise<M>destroy()حذف الكائنات المرتبطة التي تستوفي الشروط
التوقيع
async destroy(options?: TargetKey | TargetKey[] | DestroyOptions): Promise<Boolean>add()إضافة كائنات مرتبطة جديدة
التوقيع
async add( options: TargetKey | TargetKey[] | PrimaryKeyWithThroughValues | PrimaryKeyWithThroughValues[] | AssociatedOptions ): Promise<void>النوع
التفاصيل
يمكنك تمرير targetKey للكائن المرتبط مباشرةً، أو تمرير targetKey مع قيم حقول الجدول الوسيط معًا.
مثال
set()تعيين الكائنات المرتبطة
التوقيع
async set( options: TargetKey | TargetKey[] | PrimaryKeyWithThroughValues | PrimaryKeyWithThroughValues[] | AssociatedOptions, ): Promise<void>التفاصيل
المعلمات هي نفسها في add().
remove()إزالة الارتباط مع الكائنات المحددة
التوقيع
async remove(options: TargetKey | TargetKey[] | AssociatedOptions)النوع
toggle()تبديل الكائنات المرتبطة.
في بعض سيناريوهات العمل، غالبًا ما يكون من الضروري تبديل الكائنات المرتبطة. على سبيل المثال، يمكن للمستخدم إضافة منتج إلى المفضلة، ثم إزالته، ثم إضافته مرة أخرى. يمكن استخدام طريقة toggle لتنفيذ هذه الوظيفة بسرعة.
التوقيع
async toggle(options: TargetKey | { tk?: TargetKey; transaction?: Transaction }): Promise<void>التفاصيل
تتحقق طريقة toggle تلقائيًا مما إذا كان الكائن المرتبط موجودًا بالفعل. إذا كان موجودًا، تتم إزالته؛ وإذا لم يكن موجودًا، تتم إضافته.