Format Data Otomatis Dengan Accesor & Mutator Model Eloquent Laravel
Accesor Dan mutator merupakan salah satu fitur yang dapat kita gunakan untuk memformat data otomatis menggunakan get atau set value dari model. sebagai contoh misal anda ingin merubah setiap data yang anda simpan harus huruf besar seluruhnya untuk salah satu field tertentu.
Accessor
Dengan Accessor kita dapat melakukan format pada data yang kita dapatkan dari database, sebgai contoh misal kita ingin menggabungkan data dari field kode dan nama barang, daripada kita melakukan penggabungan di views maka kita dapat melakukan penggabungan data tersebut di model dengan bantuan accessor
contohnya kita akan melakukan penggabungan data code & name sebagai berikut :
Pada Model Item tambahkan sebuah mutator sbb :
public function getFullKodeAttribute () { return $this->code . '-' . $this->name; }
Coding diatas kita membuat sebuah mutuator dengan nama getFullKodeAttribute untuk setiap Accessor diawali dengan get , dimana method ini melakukan return data yang berasal dari kode dan name yang kita gabungkan.
Dan Untuk hasil penggabunggannya dapat anda akses
dengan cara sbb :
$items = Items::all(); foreach ($items as $item) { return [ 'kode' => $item->code, 'nama' => $item->name, 'Kode & Nama' => $item->full_kode ]; }
Berikut Hasilnya :
Perhatikan untuk bagian $item->full_kode dimana kita menggunakan underscore untuk mengkases datanya hal ini disebabkan laravel menggunakan Naming Conventions dan untuk mengaksesnya di views kita menggunakan underscore namun jika nama attribute anda terdiri dari satu kata saja misal getNameAttribute maka anda dapat mengakesnya di views blade dengan cara seperti ini :
Untuk Lebih Details mengenaik Naming Conventions silahkan baca disini
Mutator
Mutator membantu kita untuk melakukan format data yang akan di simpan ke dalam database sebagai contoh Misal kita memiliki field degan name field code dan name kita ingin memformat misal untuk field name setiap data yang tersimpan harus di awali huruf besar.
Mungkin anda biasanya melakukan perbuhan format di data yang akan anda kirim ke Request atau anda dapat melakukan format di controller namun hal ini membuat code kita tidak efisien karena kita akan melakukan hal tersebut berulang-ulang, Maka disini dibutuhkan mutator agar anda tidak perlu mengerjakan pekerjaan yang berulang.
Study Case nya sebagai berikut : User melakukan inputan data nama barang : keyboard namun anda ingin menyimpan datanya menjadi Keyboard ( huruf “ K” di awali dengan hufur besar) maka kita dapat memformatnya menggunakan Accessor pada model di Laravel.
Berikut Implementasi sederhananya :
Misal kita memiliki Sebuah model Item.php maka pada model Item kita dapat tambahkan satu baris Mutator Sbb :
public function setNameAttribute ( $value ) { $this->attributes['name'] = ucfirst($value) }
Pada Coding diatas kita membuat sebuah method setNameAttribute ( Untuk Setiap Mutator selau diawali dengan set, dimana kita melakukan format untuk field name setiap valuenya akan kita format menjadi diawali huruf besar.
lalu kita coba untuk input sebuah data Hasilnya Akan Menjadi Sbb :
Perhatikan untuk untuk attribute name data yang di entry sebelum disimpan kedatabase akan otomatis di format diawali huruf besar ( ucfirst ) hal ini terjadi dikarenakan kita melakukan mutator dengan nama setNameAttribute ( $ Value )
Kesimpulan
Accessor dan mutator merupakan sebuah fitur dari eloquent laravel yang akan sangat sering kita gunakan sehingga kita tidak perlu melakukan penulisan secara berulang-ulang untuk format value ataupun set value data sehingga coding kita bisa lebih efisien dan lebih rapi.
dan yang perlu kita perhatikan adalah setiap accesor diawali dengan get dan untuk mutator diawali dengan set
Bagikan tulisan ini agar lebih banyak yang mendapatkan manfaat dari penggunaan accessor dan mutator pada project laravel.
Silahkan Mengunjungi blog pribadi saya di www.adinata.id dan dapatkan banyak tutorial dan trick web programming di blog saya www.adinata.id
Originally published at https://adinata.id on February 27, 2020.