Laravel: Cara Select Kolom Tertentu Saja Pakai Eloquent

Untuk menjaga performa aplikasi agar tetap bagus, kita perlu mengolah data secara efektif dan efisien. Salah satunya adalah dengan cara mengambil data yang dibutuhkan saja.

Sebagai contoh saat kita ingin menampilkan nama dan email user pada sebuah User Card, maka kita tidak perlu menyertakan data gender, role, mempership_status, atau kolom lain yang tidak dibutuhkan.

Ada banyak cara yang dapat dilakukan untuk memenuhi kebutuhan ini.

Menggunakan Method select

Kita bisa menggunakan method select dan memasukkan nama kolom yang ingin diambil sebagai argumennya.

$user = User::where('id', 1)
->select('email', 'name')
->get();

Menggunakan Method get

Cara di atas dapat disederhanakan seperti berikut ini:

$user = User::where('id', 1)
->get(['email', 'name']);

Pada contoh di atas, yang perlu diperhatikan adalah argument get hanya bisa diisi satu saja. Oleh sebab itu, nama-nama kolom yang mau diambil datanya harus dimasukkan dalam sebuah array.

Menggunakan Method find

Kita ternyata juga bisa menggunakan method find untuk menentukan kolom mana saja yang mau diambil dari database.

$user = User::find(1, ['email', 'name']);

Pada contoh di atas, argument pertama diisi dengan id user sedangkan argumen kedua diisi nama-nama kolom dalam bentuk array.

Selain dari ketiga contoh diatas masih ada cara-cara lainnya misal menggunakan method selectRaw. Namun, catatan kali dicukupkan sampai di sini dulu.

Komentar