Tutorial Lengkap Eloquent Find Dan all lengkap dengan contoh penggunaanya pada laravel

Adinata
5 min readFeb 27, 2020

--

Membangun aplikasi tentu kita tidak akan pernah lepas dari menampilkan dan mencari data di laravel kita dapat menggunakan eloquent yaitu find, first,all dan firstorfail dimana fungsi pada eloquent find untuk mencari data yang sesuai berdasarkan paramters primarykey dari suatu table, dan untuk all berfungsi untuk menampilkan data dari sebuah tabel.

Banyak sekali yang belum menggali apa saja yang dapat kita lakukan dengan eloquent Find Dan All maka di artikel kali ini saya akan coba mengulas hal-hal menarik yang dapat kita lakukan pada eloquent Find Dan All Kita mulai dari Eloquent FIND.

FInd Umumnya kita gunakan untuk mencari data pada suatu tabel yang dijadikan parameternya adalah field yang dijadikan primarykey dari tabel tersebut, pada study case kali ini kita akan buat sebuah tabel dengan nama Supplier berikut field-field yang ada pada tabel Supplier :

Kita akan coba menampilkan data dengan find sbb :

public function index() { $supplier = Supplier::find(1)->toarray(); $suppliers = [$supplier]; dd($suppliers); }

Coding diatas akan mencari data yang memiliki id = 1 dan menampilkan data nya dalam bentuk array, namun coba anda perhatikan coding diatas menampilkan seluruh record dari data yang memiliki id=1 bagaimana jika kita ingin menampilkan hanya 3 field saja yaitu field id,name dan company saja ?? maka kita dapat menuliskannya sebagai berikut :

public function index() { $supplier = Supplier::find(1, ['id','name','company'])->toarray(); $suppliers = [$supplier]; dd($suppliers); }

Perhatikan kita dapat menambahkan array setelah id berapa yang ingin kita cari datanya dan di dalam array anda bisa masukkan field-field apa saja yang ingin anda tampilkan dari coding diatas akan menghasilkan data sbb :

Oke kita coba hal lain lagi bagaimana jika saya ingin menampilkan 3 data sekaligus misal saya ingin menampilkan data yg memiliki id 1 , id 2 dan id 3 … dengan eloquent Find kita dapat melakukannya dengan cara sbb :

public function index() { $supplier = Supplier::find([1,2,3])->toarray(); $suppliers = [$supplier]; dd($suppliers); }

dan dari coding diatas kita akan mendapatkan data supplier yang memiliki data id=1, id=2 dan id=3 berikut hasilnya :

Namun seluruh field masih di tampilkan bagaimana jika kita hanya ingin menampilkan field tertentu ? maka anda dapat menulis codingnya sbb :

public function index() { $supplier = Supplier::find([1,2,3], ['id','name'])->toarray(); $suppliers = [$supplier]; dd($suppliers); }

di coding diatas saya hanya akan menampilkan data dari field id dan name saja dan untuk hasilnya sbb :

FirstOrFail : tentunya terkadang kita juga menggunakan klausa where untuk pencarian data misal kita ingin menampilkan data supplier yang memiliki email xyz@yahoo.com maka kita dapat menggunakan first pada eloquent laravel untuk codingnya sbb :

public function index() { $supplier = Supplier::where('email', 'hodkiewicxxz.theo@yahoo.com')->first(); $suppliers = [$supplier]; dd($suppliers); }

namun ada permasalahan jika data yang anda cari tidak ditemukan maka anda tidak akan di bawa ke halaman error 404 melainkan data yang di cari akan mereturn NULL.

Namun hal ini bisa anda akalin dengan cara menambahkan pengecekkan apakah data ada atau tidak dengan cara sbb :

public function index() { $supplier = Supplier::where('email', 'hodkiewicxxz.theo@yahoo.com')->first(); if (!$supplier){ return abort(404); } $suppliers = [$supplier]; dd($suppliers); }

kita harus menambahkan baris pengecekkan if supplier not exist maka akan mereturn ke halaman 404 berikut tampilannya :

lalu adakah cara yang lebih simple lagi untuk mengatasi hal diatas ? ya lagi-lagi laravel sudah memanjakan kita dengan menggunakan firstorfail(), dengan menggunakan firstorfail kita dapat melakukannya dengan coding sbb :

public function index() { $supplier = Supplier::where('email', 'hodkiewicxxz.theo@yahoo.com')->firstorfail(); $suppliers = [$supplier]; dd($suppliers); }

maka jika data tidak ditemukan akan di redirect ke halaman 404 namun jika data ditemukan data akan di tampilkan sbb :

Untuk menampilkan hanya field-field tertentu anda dapat melakukan coding sbb :

public function index() { $supplier = Supplier::where('email', 'hodkiewicz.theo@yahoo.com')->firstorfail(['name','email'])->toarray(); $suppliers = [$supplier]; dd($suppliers); }

maka coding diatas akan menghasilkan return sbb :

Hal ini bisa juga anda lakukan untuk eloquent all() untuk menampilkan seluruh record pada tabel supplier, cara penggunaannya sama dengan penggunaan find untuk contohnya sebagai berikut :

public function index() { $supplier = Supplier::all()->toarray(); $suppliers = [$supplier]; dd($suppliers); }

Coding diatas akan menampilkan seluruh data yang ada pada tabel Supplier hasilnya sbb :

Untuk melakukan filter field-field apa saja yang ingin ditampilkan anda dapat melakukannya sbb :

public function index() { $supplier = Supplier::all(['id','name','email'])->toarray(); $suppliers = [$supplier]; dd($suppliers); }

Di Coding diatas saya hanya menampikan data dari field id,name,email berikut hasilnya :

Kesimpulan :

Laravel Eloquent first,find, all, firstorfail sangat memberikan kemudahan bagi kita dalam mengelola data baik untuk untuk mencari,menampilkan dan lain sebagainya untuk dokumentasi lainnya anda dapat juga melihatnya

bagaimana asik bukan menggunakan Eloquent ? sekarang apakah anda sudah menerapkan hal ini di project anda ? jawab di kolom komentar ya dan jangan lupa share artikel ini agar lebih banyak lagi yang menerapkan eloquent find,first,firstorfail dan all di project laravelnya 🙂

Anda dapat mengunjungi Blog saya untuk mempelajari hal magic dari laravel di alamat www.adinata.id

Originally published at https://adinata.co on February 27, 2020.

--

--

Adinata
Adinata

Written by Adinata

Saya merupakan seorang fullstack developer dan wirausaha saya rutin membagikan tulisan saya seputar fullstack developer di website : https://midteknologi.com/

No responses yet