logologo
התחלה
מדריך
פיתוח
תוסף
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
התחלה
מדריך
פיתוח
תוסף
API
logologo
API Overview

@nocobase/auth

AuthManager
Auth
BaseAuth

@nocobase/cache

CacheManager
מטמון

@nocobase/cli

NocoBase CLI
משתני סביבה גלובליים

@nocobase/client

אפליקציה
תוסף

@nocobase/database

אוסף
שדה

interfaces

BaseInterface
אופרטורים לסינון

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
מאגר

shared

create-options
destroy-options
find-one
transaction
update-options

@nocobase/data-source-manager

DataSourceManager
DataSource (מופשט)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

מנהל מקורות נתונים
הקשר תהליך
FlowEngine
FlowModel
משאב זרימה

@nocobase/logger

יומן

@nocobase/server

AppCommand
יישום
AuditManager
הקשר
הגירה
תוסף

@nocobase/sdk

אימות
אחסון

@nocobase/telemetry

מדד
טלמטריה
Trace
Previous PageRelationRepository
Next Pagebelongs-to-repository
TIP

מסמך זה תורגם על ידי בינה מלאכותית. לכל אי דיוק, אנא עיין בגרסה האנגלית

#BelongsToManyRepository

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)

סוג

interface CountOptions
  extends Omit<SequelizeCountOptions, 'distinct' | 'where' | 'include'>,
    Transactionable {
  filter?: Filter;
}

#findAndCount()

מבצע שאילתה במסד הנתונים עבור קבוצת נתונים וספירה כוללת תחת תנאים ספציפיים.

חתימה

  • async findAndCount(options?: FindAndCountOptions): Promise<[any[], number]>

סוג

type FindAndCountOptions = CommonFindOptions;

#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>

סוג

type PrimaryKeyWithThroughValues = [TargetKey, Values];

interface AssociatedOptions extends Transactionable {
  tk?:
    | TargetKey
    | TargetKey[]
    | PrimaryKeyWithThroughValues
    | PrimaryKeyWithThroughValues[];
}

פרטים

ניתן להעביר ישירות את ה-targetKey של האובייקט המקושר, או להעביר את ה-targetKey יחד עם ערכי השדות של טבלת הצומת.

דוגמה

const t1 = await Tag.repository.create({
  values: { name: 't1' },
});

const t2 = await Tag.repository.create({
  values: { name: 't2' },
});

const p1 = await Post.repository.create({
  values: { title: 'p1' },
});

const PostTagRepository = new BelongsToManyRepository(Post, 'tags', p1.id);

// העברת targetKey
PostTagRepository.add([t1.id, t2.id]);

// העברת שדות טבלת צומת
PostTagRepository.add([
  [t1.id, { tagged_at: '123' }],
  [t2.id, { tagged_at: '456' }],
]);

#set()

מגדיר אובייקטים מקושרים

חתימה

  • async set( options: TargetKey | TargetKey[] | PrimaryKeyWithThroughValues | PrimaryKeyWithThroughValues[] | AssociatedOptions, ): Promise

פרטים

הפרמטרים זהים לאלו של add().

#remove()

מסיר את הקישוריות עם האובייקטים הנתונים

חתימה

  • async remove(options: TargetKey | TargetKey[] | AssociatedOptions)

סוג

interface AssociatedOptions extends Transactionable {
  tk?: TargetKey | TargetKey[];
}

#toggle()

מחליף (toggle) אובייקטים מקושרים.

בתרחישים עסקיים מסוימים, לעיתים קרובות יש צורך להחליף אובייקטים מקושרים. לדוגמה, משתמש יכול לסמן מוצר כמועדף, לבטל את הסימון, ולסמן אותו שוב. מתודת ה-toggle מאפשרת ליישם פונקציונליות דומה במהירות.

חתימה

  • async toggle(options: TargetKey | { tk?: TargetKey; transaction?: Transaction }): Promise<void>

פרטים

מתודת ה-toggle בודקת באופן אוטומטי אם האובייקט המקושר כבר קיים. אם הוא קיים, הוא מוסר; אם לא, הוא מתווסף.