logologo
Başlangıç
Kılavuz
Geliştirme
Eklentiler
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Başlangıç
Kılavuz
Geliştirme
Eklentiler
API
logologo
API'ye Genel Bakış

@nocobase/auth

AuthManager
Kimlik Doğrulama
BaseAuth

@nocobase/cache

CacheManager
Önbellek

@nocobase/cli

NocoBase CLI
Genel Ortam Değişkenleri

@nocobase/client

Uygulama
Eklenti

@nocobase/database

koleksiyon
Alan

interfaces

BaseInterface
Filtre Operatörleri

RelationRepository

BelongsToManyRepository
belongs-to-repository
HasManyRepository
HasOneRepository
Depo

shared

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

@nocobase/data-source-manager

DataSourceManager
Veri Kaynağı (Soyut)
ICollectionManager
ICollection
IField
IModel
IRepository

@nocobase/flow-engine

Veri Kaynağı Yöneticisi
FlowContext
FlowEngine
FlowModel
İş Akışı Kaynağı

@nocobase/logger

Logger

@nocobase/server

AppCommand
Uygulama
AuditManager
Bağlam
Taşıma
Eklenti

@nocobase/sdk

Kimlik Doğrulama (Auth)
Depolama
Previous PageHasManyRepository
Next PageDepo
TIP

Bu belge AI tarafından çevrilmiştir. Herhangi bir yanlışlık için lütfen İngilizce sürümüne bakın

#HasOneRepository

#Genel Bakış

HasOneRepository, HasOne tipi ilişkiler için kullanılan bir repository'dir.

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

// İlişkili repository'yi alın
const userProfileRepository = User.repository
  .relation('profile')
  .of(user.get('id'));

// Doğrudan da başlatılabilir
new HasOneRepository(User, 'profile', user.get('id'));

#Sınıf Metotları

#find()

İlişkili nesneyi bulur.

İmza

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

Tip

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

Detaylar

Sorgu parametreleri, Repository.find() ile aynıdır.

Örnek

const profile = await UserProfileRepository.find();
// İlişkili nesne mevcut değilse null döner

#create()

İlişkili bir nesne oluşturur.

İmza

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

Örnek

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

İlişkili nesneyi günceller.

İmza

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

Örnek

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

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

#remove()

İlişkili nesneyi kaldırır. Bu işlem yalnızca ilişkiyi keser, ilişkili nesneyi silmez.

İmza

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

Detaylar

  • transaction: İşlem (transaction) nesnesi. Eğer bir işlem parametresi geçilmezse, metot otomatik olarak dahili bir işlem oluşturacaktır.

Örnek

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

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

#destroy()

İlişkili nesneyi siler.

İmza

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

Detaylar

  • transaction: İşlem (transaction) nesnesi. Eğer bir işlem parametresi geçilmezse, metot otomatik olarak dahili bir işlem oluşturacaktır.

Örnek

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

#set()

İlişkili nesneyi ayarlar.

İmza

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

Tip

interface SetOption extends Transactionable {
  tk?: TargetKey;
}

Detaylar

  • tk: Ayarlanacak ilişkili nesnenin targetKey'i.
  • transaction: İşlem (transaction) nesnesi. Eğer bir işlem parametresi geçilmezse, metot otomatik olarak dahili bir işlem oluşturacaktır.

Örnek

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

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

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