Menggunakan Laravel Query Builder Tanpa Hard-Coded Nama Table

Kebutuhan custom query yang terkadang tidak bisa kita lakukan di eloquent.

Feb 22, 2021
Menggunakan Laravel Query Builder Tanpa Hard-Coded Nama Table

 

Sebagai developer yang menggunakan framework Laravel, ada kalanya kita perlu atau harus menggunakan query builder. Alasannya, bisa karena kompleksitas query atau issue performance jika kita menggunakan Eloquent.

 

Masalah

Salah satu masalah yang timbul ketika kita menuliskan kode di query builder yaitu menuliskan nama table, harus hard-coded. Mungkin suatu saat kita mendapati case dimana kita harus merubah nama sebuah table, maka kita harus menyesuaikan juga nama table tersebut ke seluruh kode query builder-nya.

Contoh query builder sederhana seperti ini

DB::table('users')->get()

Di dalam function table kita harus memasukkan parameter berupa nama table.

 

Solusi

Lalu bagaimanakah solusi untuk mengatasi masalah tersebut? Jawabannya adalah dengan menggunakan Eloquent.

Jika kita teliti dengan seksama, class Illuminate\Database\Eloquent\Models terdapat function getTable(), dimana fungsinya adalah untuk mendapatkan nama table dari class model.

Jadi, kita bisa menuliskan kode query builder di atas menjadi seperti ini. Membuat objek dari class model, kemudian panggil function getTable.

DB::table((new \App\Models\User)->getTable())->get()

 

Nah itu tadi sedikit tips ketika kita menggunakan query builder dari laravel. Semoga bermanfaat, jangan lupa baca postingan saya yang lain. :)

--

Happy coding!!!

Bagikan :