logologo
Démarrer
Manuel
Développement
Plugins
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Démarrer
Manuel
Développement
Plugins
API
logologo
Aperçu de l'API

@nocobase/auth

AuthManager
Auth
BaseAuth

@nocobase/cache

CacheManager
Cache

@nocobase/cli

CLI NocoBase
Variables d'environnement globales

@nocobase/client

Application
Plugin

@nocobase/database

Collection
Champ

interfaces

BaseInterface
Opérateurs de filtre

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
Dépôt

shared

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

@nocobase/data-source-manager

DataSourceManager
DataSource (abstraite)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

Gestionnaire de sources de données
Contexte de Flux
FlowEngine
FlowModel
Ressource de flux

@nocobase/logger

Logger

@nocobase/server

AppCommand
Application
AuditManager
Contexte
Migration
Plugin

@nocobase/sdk

Auth
Stockage
Previous PageRelationRepository
Next Pagebelongs-to-repository
Avis de traduction IA

Cette documentation a été traduite automatiquement par IA.

#BelongsToManyRepository

BelongsToManyRepository est un Relation Repository utilisé pour gérer les relations BelongsToMany.

Contrairement aux autres types de relations, les relations BelongsToMany nécessitent l'utilisation d'une table de jonction pour être enregistrées. Lorsque vous définissez une relation d'association dans NocoBase, une table de jonction peut être créée automatiquement ou spécifiée explicitement.

#Méthodes de classe

#find()

Trouve les objets associés.

Signature

  • async find(options?: FindOptions): Promise<M[]>

Détails

Les paramètres de requête sont identiques à ceux de Repository.find().

#findOne()

Trouve un objet associé, ne renvoyant qu'un seul enregistrement.

Signature

  • async findOne(options?: FindOneOptions): Promise<M>

#count()

Renvoie le nombre d'enregistrements correspondant aux conditions de la requête.

Signature

  • async count(options?: CountOptions)

Type

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

#findAndCount()

Interroge la base de données pour obtenir un ensemble de données et le nombre total d'enregistrements sous des conditions spécifiques.

Signature

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

Type

type FindAndCountOptions = CommonFindOptions;

#create()

Crée un objet associé.

Signature

  • async create(options?: CreateOptions): Promise<M>

#update()

Met à jour les objets associés qui remplissent les conditions.

Signature

  • async update(options?: UpdateOptions): Promise<M>

#destroy()

Supprime les objets associés qui remplissent les conditions.

Signature

  • async destroy(options?: TargetKey | TargetKey[] | DestroyOptions): Promise<Boolean>

#add()

Ajoute de nouveaux objets associés.

Signature

  • async add( options: TargetKey | TargetKey[] | PrimaryKeyWithThroughValues | PrimaryKeyWithThroughValues[] | AssociatedOptions ): Promise<void>

Type

type PrimaryKeyWithThroughValues = [TargetKey, Values];

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

Détails

Vous pouvez passer directement le targetKey de l'objet associé, ou passer le targetKey avec les valeurs des champs de la table de jonction.

Exemple

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);

// Passe le targetKey
PostTagRepository.add([t1.id, t2.id]);

// Passe les champs de la table de jonction
PostTagRepository.add([
  [t1.id, { tagged_at: '123' }],
  [t2.id, { tagged_at: '456' }],
]);

#set()

Définit les objets associés.

Signature

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

Détails

Les paramètres sont les mêmes que pour add().

#remove()

Supprime l'association avec les objets donnés.

Signature

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

Type

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

#toggle()

Bascule les objets associés.

Dans certains scénarios métier, il est souvent nécessaire de basculer les objets associés. Par exemple, un utilisateur peut ajouter un produit à ses favoris, le retirer, puis l'ajouter à nouveau. La méthode toggle permet d'implémenter rapidement une telle fonctionnalité.

Signature

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

Détails

La méthode toggle vérifie automatiquement si l'objet associé existe déjà. S'il existe, il est supprimé ; sinon, il est ajouté.