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 PageHasManyRepository
Next PageDépôt
Avis de traduction IA

Cette documentation a été traduite automatiquement par IA.

#HasOneRepository

#Aperçu

Le HasOneRepository gère les associations de type HasOne.

const User = db.collection({
  name: 'users',
  fields: [
    { type: 'hasOne', name: 'profile' },
    { type: 'string', name: 'name' },
  ],
});

const Profile = db.collection({
  name: 'profiles',
  fields: [{ type: 'string', name: 'avatar' }],
});

const user = await User.repository.create({
  values: { name: 'u1' },
});

// Récupérer le repository d'association
const userProfileRepository = User.repository
  .relation('profile')
  .of(user.get('id'));

// Peut aussi être initialisé directement
new HasOneRepository(User, 'profile', user.get('id'));

#Méthodes de classe

#find()

Recherche l'objet associé.

Signature

  • async find(options?: SingleRelationFindOption): Promise<Model<any> | null>

Type

interface SingleRelationFindOption extends Transactionable {
  fields?: Fields;
  except?: Except;
  appends?: Appends;
  filter?: Filter;
}

Détails

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

Exemple

const profile = await UserProfileRepository.find();
// Retourne null si l'objet associé n'existe pas

#create()

Crée un objet associé.

Signature

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

Exemple

const profile = await UserProfileRepository.create({
  values: { avatar: 'avatar1' },
});

console.log(profile.toJSON());
/*
{
  id: 1,
  avatar: 'avatar1',
  userId: 1,
  updatedAt: 2022-09-24T13:59:40.025Z,
  createdAt: 2022-09-24T13:59:40.025Z
}
*/

#update()

Met à jour l'objet associé.

Signature

  • async update(options: UpdateOptions): Promise<Model>

Exemple

const profile = await UserProfileRepository.update({
  values: { avatar: 'avatar2' },
});

profile.get('avatar'); // 'avatar2'

#remove()

Supprime l'association avec l'objet. Cette méthode ne fait que dissocier l'objet, elle ne le supprime pas.

Signature

  • async remove(options?: Transactionable): Promise<void>

Détails

  • transaction : L'objet de transaction. Si aucun paramètre de transaction n'est fourni, la méthode créera automatiquement une transaction interne.

Exemple

await UserProfileRepository.remove();
(await UserProfileRepository.find()) == null; // true

(await Profile.repository.count()) === 1; // true

#destroy()

Supprime l'objet associé.

Signature

  • async destroy(options?: Transactionable): Promise<Boolean>

Détails

  • transaction : L'objet de transaction. Si aucun paramètre de transaction n'est fourni, la méthode créera automatiquement une transaction interne.

Exemple

await UserProfileRepository.destroy();
(await UserProfileRepository.find()) == null; // true
(await Profile.repository.count()) === 0; // true

#set()

Définit l'objet associé.

Signature

  • async set(options: TargetKey | SetOption): Promise<void>

Type

interface SetOption extends Transactionable {
  tk?: TargetKey;
}

Détails

  • tk : La targetKey de l'objet associé à définir.
  • transaction : L'objet de transaction. Si aucun paramètre de transaction n'est fourni, la méthode créera automatiquement une transaction interne.

Exemple

const newProfile = await Profile.repository.create({
  values: { avatar: 'avatar2' },
});

await UserProfileRepository.set(newProfile.get('id'));

(await UserProfileRepository.find()).get('id') === newProfile.get('id'); // true