Accessors dan Mutators Laravel 5.4

Accessors dan Mutators Laravel 5.4

Belajar laravel memang menarik, pada artikel sebelumnya kita telah belajar mengenal relationships pada laravel, maka kali ini kita akan belajar fitur lainnya yang tak kalah menarik dan masih berkaitan dengan Eloquent model. Fitur tersebut adalah Accessors & Mutators, yang kita kenal sebagai getters dan setters. Accessors digunakan untuk memanggil antribut dengan cara tertentu dan Mutators digunakan untuk menyimpan attribut dengan cara tertentu juga.

Menggunakan Accessors

Dengan menggunakan accessors, sebagai contoh kita dapat menyelesaikan permasalahan dalam membuat format tanggal sesuai yang kita inginkan dengan menggunakan method accessor secara sederhana pada model Post class. Perlu diketahui, nama method accessors diawali dengan get, sehingga menjadi getNamaFieldAttribute. Tambahkan code berikut pada Post.php :

public function getCreatedAtAttribute($value)
{
     return Carbon::parse($value)->format('d-m-Y');
}

Seperti yang anda lihat, method tersebut mengambil attribut created_at sehingga nama method yang digunakan adalah getCreatedAtAttribut. Pada kasus ini kita akan menggunakan Carbon untuk memformat ulang tanggalnya.

Untuk menggunakan Carbon, anda harus memasukkan use statements pada file Post.php :

use Carbon\Carbon;

Sehingga full code Post.php akan menjadi seperti ini :

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Carbon\Carbon;

class Post extends Model
{
    protected $fillable = ['user_id', 'title'];

    public function getCreatedAtAttribute($value)
	{
		return Carbon::parse($value)->format('d-m-Y');
	}
}

Jadi setelah anda selesai melakukannya, format tanggal anda akan diperbaharui secara otomatis dimanapun kita mengaksesnya created_at. Seperti yang terlihat dibawah ini :

Keren bukan ? Jadi kita tidak perlu lagi melakukan re-format tanggal setiap kali kita akan menggunakannya.

Menggunakan Mutators

Serupa namun tak sama, jika accessors digunakan untuk memanggil attribut, maka mutators untuk menyimpan sebuah attribut. Misal pada penerapan kasus kali ini adalah, sebelum menyimpan kedatabase kita hendak mengubah format title menjadi huruf kapital di awal karakter.

Untuk menggunakan mutators, sama dengan accessors kita harus membuat sebuah method dengan nama setNamaFieldAttribut(). Maka pada Post.php tambahkan code berikut :

public function setTitleAttribute($value) 
{
    $this->attributes['title'] = ucfirst($value);
}

Maka secara otomatis, mutators akan bekerja menjadikan karakter yang di input pada field title menggunakan huruf kapital diawal. Pengembangan dari penggunaan Accessors dan Mutators dapat dimanfaatkan dalam berbagai hal sesuai keinginan dan kebutuhan kita.

Category:
Share:

Comments