logologo
Start
Dokumentacja
Deweloperzy
Wtyczki
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
Dokumentacja
Deweloperzy
Wtyczki
API
logologo
Przegląd API

@nocobase/auth

AuthManager
Uwierzytelnianie
BaseAuth

@nocobase/cache

CacheManager
Pamięć podręczna

@nocobase/cli

NocoBase CLI
Globalne zmienne środowiskowe

@nocobase/client

Aplikacja
Wtyczka

@nocobase/database

Kolekcja
Pole

interfaces

BaseInterface
Operatory Filtrowania

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
Repozytorium

shared

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

@nocobase/data-source-manager

DataSourceManager
Źródło danych (abstrakcyjne)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

Menedżer źródeł danych
Kontekst przepływu
FlowEngine
FlowModel
Zasób przepływu

@nocobase/logger

Rejestrator

@nocobase/server

AppCommand
Aplikacja
AuditManager
Kontekst
Migracja
Wtyczka

@nocobase/sdk

Autoryzacja
Storage
Previous PageHasManyRepository
Next PageRepozytorium
TIP

Ten dokument został przetłumaczony przez AI. W przypadku niedokładności, proszę odnieść się do wersji angielskiej

#HasOneRepository

#Przegląd

HasOneRepository to repozytorium dla powiązań typu 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' },
});

// Pobieranie repozytorium powiązania
const userProfileRepository = User.repository
  .relation('profile')
  .of(user.get('id'));

// Można również zainicjalizować bezpośrednio
new HasOneRepository(User, 'profile', user.get('id'));

#Metody klasy

#find()

Znajduje powiązany obiekt.

Sygnatura

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

Typ

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

Szczegóły

Parametry zapytania są takie same jak w Repository.find().

Przykład

const profile = await UserProfileRepository.find();
// Zwraca null, jeśli powiązany obiekt nie istnieje

#create()

Tworzy powiązany obiekt.

Sygnatura

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

Przykład

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

Aktualizuje powiązany obiekt.

Sygnatura

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

Przykład

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

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

#remove()

Usuwa powiązany obiekt. Ta operacja jedynie rozłącza powiązanie, nie usuwa samego obiektu.

Sygnatura

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

Szczegóły

  • transaction: Obiekt transakcji. Jeśli parametr transakcji nie zostanie przekazany, metoda automatycznie utworzy wewnętrzną transakcję.

Przykład

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

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

#destroy()

Usuwa powiązany obiekt.

Sygnatura

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

Szczegóły

  • transaction: Obiekt transakcji. Jeśli parametr transakcji nie zostanie przekazany, metoda automatycznie utworzy wewnętrzną transakcję.

Przykład

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

#set()

Ustawia powiązany obiekt.

Sygnatura

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

Typ

interface SetOption extends Transactionable {
  tk?: TargetKey;
}

Szczegóły

  • tk: targetKey powiązanego obiektu, który ma zostać ustawiony.
  • transaction: Obiekt transakcji. Jeśli parametr transakcji nie zostanie przekazany, metoda automatycznie utworzy wewnętrzną transakcję.

Przykład

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

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

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