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

Mengapa .env File Laravel Tidak Terupload / Tercommit ke Git

.env file atau bisa kita bilang "environment file" atau file yang berisi variable constan untuk memberikan value secara global ke dalam aplikasi kita. file ini berisi variable dan value yang sensitif yang membuatnya sangat riskan atau beresiko apabila di ketahui oleh orang yang tidak bertanggung jawab. contoh  seperti berikut ini file .env di atas memiliki informasi sensitif seperti host, user dan password dari database kita. maka dari itu kita sebagai developer harus pintar-pintar untuk memperlakukan .env file ini, secara default apabila kita upload ke hosting atau vps file .env ini tidak akan bisa di akses secara global dari host kita, karna letak root host kita ada di folder public yang notabene berada di satu level ke atas folder dari posisi .env. jadi user awam tidak akan bisa mengakses dari host kita eg : http://angon.dev/.env . nah kalo ke git gmn? apabila kita menggunakan version controller seperti github, gitlab, bitbucket. secara default git akan mem...

Laravel Route : Pengertian Router Resource

bill.web.id, Router laravel adalah kode program yang di gunakan untuk mendefinisikan url pada project laravel kita. router memanfaatkan htaccess untuk membuat url project kita sangat seo friendly. berbada dengan CI, router pada laravel sangat customable, berapapun level url slash nya tidak berpengaruh dengan controller dan method yang di panggil. contoh Route :: get ( $uri , $callback ) ; $uri : di isi oleh url yang ingin kita buat $callback : di isi oleh nama class dan atau method dari controller Baca Juga : Laravel Library : Chatter Forum Laravel Library tentu hal ini sangat menguntungkan bagi para pengamat seo, bahwa nama url sangat berpengaruh terhadap SEO,  seperti kita tau search engine mengidentifikasi url dari nama yang tersemat di dalam urlnya, jadi pengalamatan url yang bagus akan berdampak pada kemudahan halaman kita akan terindeks search engine. Router sendiri memiliki banyak metode, tiap metode berasosiasi pada HTTP VERB , http verb ...

Laravel Database : Membuat Jutaan Data Dummy Menggunakan Faker Generator di Laravel

faker generator adalah salah satu library magic yang build in di laravel, dengan menggunakan library ini kita bisa membuat puluhan, ratusan bahkan jutaan data dummy dengan hanya sekali pukul. udah kebayang belom? kalo belom kita langsung aja masuk ke praktiknya. like foolest people gonna smart when use faker oke guys, lets do this. pertama tama, liat diagram berikut yak, biar runtut langkah langkahnya naah langkah runtutnya kurang lebih seperti ini  create migration->model->faker->seeder->execute->test oke guys, mari kita buat migrationnya, studi kasus yang mau kita buat adalah membuat artikel blog dengan table sederhana seperti berikut 1. ketikkan perintah berikut di terminal php artisan make:migration artikel  2. buka file migrationnya di folder database>migration>[nama migration] 3. ketikkan perintah berikut di terminal php artisan migrate oke guys hasilnya nanti akan seperti ini setelah lang...