Skip to main content

Playing with Hooks in Gorm #GolangDev

Pixabay


Hello everyone, I would like to share some tricks in gorm, the Idea of this tricks is to execute a command or code statement in the middle of an ORM operation, if you ever know about trigger in the query language, then hooks is just kinda like that. Hooks could execute statement in some events such as: beforeCreate, beforeUpdate, afterCreate,  and afterUpdate. those event is similar as a trigger,  when the trigger is executed in DBMS layer, hooks are executed in the application layer.

In my real case, my current company has different convention of naming database column, so when I try to implement ORM, a lot of columns such as created_at, updated_at and deleted_at can't be generated automatically. also if you have a custom UUID you could pass the value UUID generator into hooks before the insert is executed. for more detail let's jump into code :



# Explanation

Above code containing model struct, and several methods from gorm to serve model, TableName method used to define table name if your structs name has different spelling, then next method is BeforeCreate, that is hooks method from gorm, this method have a standard convension to make it's work correctly, the structure is method need to implement model struct and passing gorm.DB reference param. 

The above example is used to passing the uuid value into the ID column, and passing timestamp value into createdate column. 

# The Advantages

if you are using hooks in order to passing value or executing statements before the query executed, your code is more centralized, readable and contextable. you don't need to pass all that value for each query statement you have define. 

Popular posts from this blog

Laravel Tips : Membuat Model, Migration dan Controller dengan Sekali Jalan

  php artisan adalah generator laravel yang berfungsi untuk membuat file kodingan dengan mudah, seperti membuat controller, model, seeder, migration dan masih banyak lagi. artisan hanya bisa di lakukan di dalam lingkungan console, seperti cmd dan terminal. berikut akan saya tunjukan cara membuat controller, model, migration menggunakan php artisan. # membuat controller ketikkan perintah di bawah ini php artisan make:controller BlogController # membuat model ketikkan perintah di bawah ini php artisan make:model Blog # membuat migration ketikkan perintah di bawah ini php artisan make:migration blog # membuat seeder ketikkan perintah di bawah ini php artisan make:seeder BlogSeeder # membuat migration, controller, dan model sekaligus ketikkan perintah di bawah ini php artisan make:model -crm Blog perintah di atas akan mengenerate controller dengan nama BlogController dengan keadaan Resource method tertulis, m...

Laravel Library : Chatter Forum Laravel Library

bill.web.id  , Chatter adalah salah satu library yang menyediakan fitur forum di framework laravel. chatter hampir mirip sebuah cms yang sudah jadi tetapi berbentuk package pada laravel, library ini bisa kita gunakan pada project kita apabila kita membutuhkan fitur forum pada project kita. studi kasus nya apabila kalian membuat suatu project seperti onlineshop, blog, QnA kalian akan butuh platform yang bisa menampung komunitas dari project yang kalian punya, salah satunya adalah forum. dengan menggunakan forum, kalian bisa mengetahui keberadaan komunitas dan orang2 yang tertarik dengan project kalian. Baca Juga : Membuat Game Sederhana Menggunakan Javascript Chatter bisa jadi solusi dimana kalian bisa pakai untuk mendapatkan data dari komunitas. pada pembahasan kali ini saya akan mereview library forum ini, berikut adalah reviewnya. kelebihan : 1. tampilan chatter flat dan simple 2. fitur yang di sediakan sangat simple dan mudah di pahami 3. mudah un...

Laravel Blade : Perbedaan IF dan UNLESS

bill.web.id , hello guys, beberapa hari lalu saya bikin module laravel buat summerschool di kampus saya, karna bikin module nggk boleh asal asalan akhirnya saya coba review lagi dokumentasi laravel, pas nyampe bab blade template engine saya mendapati beberapa directive baru salah satunya yaitu unless. directive baru ini sama sama ada di kelas percabangan, menemani if else, nah sekarang pertanyaannya adalah bedanya unless dengan if else apa?. Baca juga : Laravel Library : Chatter Forum Laravel Library oke, jika kalian disini sudah faham tentang apa itu if else, maka unless adalah kebalikan dari if else . contoh : @if(auth::check()) {{ "it will printed when user was loged in" }} @endif note : kalimat di dalam percabangan akan di cetak apabila percabangan bernilai true @unless(auth::check()) {{ "it will printed when user was not loged in" }} @endif note : kalimat di dalam percabangan akan di cetak apabila perca...