Siklus perkebnagan objek
Hooks are functions that are called before or after creation/querying/updating/deletion.
Jika Anda telah mendefinisikan metode tertentu untuk sebuah model, itu akan dipanggil secara otomatis saat create, updating, querying deletion, dan jika ada callback yang mengembalikan error, GORM akan menghentikan operasi dan mengembalikan jalur transaction.
Type dari hook disini seharusnya func(*gorm.DB) error
Hooks
Membuat sebuah objek
Hook yang tersedia untuk membuat
// begin transaction |
Contoh code:
func (u *User) BeforeCreate(tx *gorm.DB) (err error) { |
NOTE “” Operasi Save/Delete di dalam GORM menjalankan pertukaran secara default, jadi peruba di dalam pertukaran itu tidak terlihat, jika kita mengembalikan nilai error apapun dalam hooks kita, maka perubahan itu akan di kembalikan
func (u *User) AfterCreate(tx *gorm.DB) (err error) { |
Melakukan Update pada sebuah Objek
Hook yang tersedia untuk membuat
// begin transaction |
Code Example:
func (u *User) BeforeUpdate(tx *gorm.DB) (err error) { |
Menghapus Sebuah Objek
Hook yang tersedia untuk melakukan Delete
// begin transaction |
Contoh kode:
// Updating data in same transaction |
Querying on object (get data)
Hook yang tersedia untuk querying (mengambil data)
// load data from database |
Code Example:
func (u *User) AfterFind(tx *gorm.DB) (err error) { |
Memodifikasi alur operasi
func (u *User) BeforeCreate(tx *gorm.DB) error { |