logologo
Start
Handleiding
Ontwikkeling
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
Start
Handleiding
Ontwikkeling
Plugins
API
logologo
API-overzicht

@nocobase/auth

AuthManager
Auth
BaseAuth

@nocobase/cache

CacheManager
Cache

@nocobase/cli

NocoBase CLI
Globale Omgevingsvariabelen

@nocobase/client

Applicatie
Plugin

@nocobase/database

Collectie
Veld

interfaces

BaseInterface
Filteroperatoren

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
Repository

shared

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

@nocobase/data-source-manager

DataSourceManager
DataSource (abstract)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

Gegevensbronbeheerder
FlowContext
FlowEngine
FlowModel
Workflowbron

@nocobase/logger

Logger

@nocobase/server

AppCommand
Applicatie
AuditManager
Context
Migratie
Plugin

@nocobase/sdk

Auth
Storage
Previous PageHasManyRepository
Next PageRepository
TIP

Dit document is vertaald door AI. Voor onnauwkeurigheden, raadpleeg de Engelse versie

#HasOneRepository

#Overzicht

HasOneRepository is de repository voor HasOne-type associaties.

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' },
});

// Haal de associatie repository op
const userProfileRepository = User.repository
  .relation('profile')
  .of(user.get('id'));

// U kunt ook direct initialiseren
new HasOneRepository(User, 'profile', user.get('id'));

#Klasse Methoden

#find()

Vindt het geassocieerde object

Handtekening

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

Type

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

Details

De queryparameters zijn hetzelfde als Repository.find().

Voorbeeld

const profile = await UserProfileRepository.find();
// Retourneert null als het geassocieerde object niet bestaat

#create()

Maakt een geassocieerd object aan

Handtekening

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

Voorbeeld

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

Werkt het geassocieerde object bij

Handtekening

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

Voorbeeld

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

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

#remove()

Verwijdert het geassocieerde object. Dit ontkoppelt alleen de associatie; het verwijdert het geassocieerde object niet.

Handtekening

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

Details

  • transaction: Transactieobject. Als er geen transactieparameter wordt meegegeven, maakt de methode automatisch een interne transactie aan.

Voorbeeld

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

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

#destroy()

Verwijdert het geassocieerde object

Handtekening

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

Details

  • transaction: Transactieobject. Als er geen transactieparameter wordt meegegeven, maakt de methode automatisch een interne transactie aan.

Voorbeeld

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

#set()

Stelt het geassocieerde object in

Handtekening

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

Type

interface SetOption extends Transactionable {
  tk?: TargetKey;
}

Details

  • tk: De targetKey van het in te stellen geassocieerde object.
  • transaction: Transactieobject. Als er geen transactieparameter wordt meegegeven, maakt de methode automatisch een interne transactie aan.

Voorbeeld

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

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

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