Tutorial: Membuat Eloquent Accessor Di Laravel 10

ID • 2 years ago • 4 min read • 3813 views
Tutorial: Membuat Eloquent Accessor Di Laravel 10

Tutorial: Membuat Eloquent Accessor Di Laravel 10

id4 min read • 3813 views

Halo Dev, semoga Kalian dalam keadaan yang sebaik - baiknya. Pada kesempatan ini kita akan membahas tentang Eloquent accessor di Laravel 10 dan sekaligus membahas cara mengimplementasikanya.

 

Laravel mempunyai fitur yang di beri nama Mutator, Accessor dan Casting, dimana fitur-fitur ini berguna untuk  manipulasi data di dalam attribute database dengan cara yang sangat mudah. Misal contohnya kita ingin membuat insert data dengan enkripsi di dalam database, serta melakukan deskripsi pada saat menampilkan data dari database secarara automatis, maka sangat bisa sekali kita menggunakan fitur tersebut.

Pengertian Tentang Eloquent Accessor.

Apapa itu Eloquent Accessor ? Eloquent Accesor adalah atribut yang memungkinkan kita mengubah nilai saat attribute field Eloquent di akses. Gunanya untuk mendefinisikan Accessor,.kelebihanya, kita bisa membuat method dalam Model dan bisa juga menentukan attribute yang akan di akses. 

Method yang akan di buat harus bernama persis dengan attribute atau field yang akan di format dan menggunakan CamelCase .

Salah satu contoh, apabila saya mempunyai attribute field  di dalam table yang bernama first_name, selanjutnya untuk nama method tersebut adalah firstName(). Maka akan tampak seperti di bawah ini. 

protected function firstName(): Attribute
{
	//...
}

 

Tutorial Membuat Eloquent Accessor.

Mari kita lakukan uji coba membuat Eloquent Accessor. Misalnya kita akan membuat sebuah Eloquent Accessor yang akan di gunakan untuk  memformat nilai attribute atau field image yang berada dalam table post .

Maka pada saat kita akses attribute atau field nya, secara automatis akan memberikan nilai full path dari direktori file gambar itu tersimpan.

Mulailah eksekusi, langkah selanjutnya buka file app/Models/Post.php , lalu ubah nama kode menjadi kodenya seperti  kode di bawah.

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Factories\HasFactory;

class Post extends Model
{
    use HasFactory;

    /**
     * fillable
     *
     * @var array
     */
    protected $fillable = [
        'image',
        'title',
        'content',
    ];

    /**
     * image
     *
     * @return Attribute
     */
    protected function image(): Attribute
    {
        return Attribute::make(
            get: fn ($image) => asset('/storage/posts/' . $image),
        );
    }
}

Setelah perubahan kode terjadi, langkah pertama import Eloquent Attribute.

use Illuminate\Database\Eloquent\Casts\Attribute;

Lalu, buatlah  method baru yang di beri nama image() , lakukanlah return di dalamnya dengan menggunakan path file image tersebut berada.

get: fn ($image) => asset('/storage/posts/' . $image),

Maka ketika kita memanggil attribute image , secara otomatis akan menghasilkan output seperti di bawah ini :

domain.com/storage/posts/nama_file_image.png

Akan tetapi, bila proyek yang di jalankan tidak menggunakan fitur accessor, hasilnya akan berubah menjadi seperti di bawah :

nama_file_image.png

Itulah tadi tutorial; membuat Eloquent Accessor di Laravel 10. Pahami langkah demi langkah, semoga artikel ini bisa berguna bagi kalian yang sedang belajar pengkodingan. jangan sungkan untuk membaca dan melakukan riset di dalam proyek laravel 10 kalian. Samapai jumpa di kesempatan berikutnya, tentunya dengan pembahasan tutorial yang lain.

Series: Laravel 10 Rest API using Sanctum
Published on November 25, 2023
Last updated on June 03, 2026

If you like this post and want to support us, you can support us via buymeacoffee or trakteer.