Single method accessors and mutators in laravel
Md. Asif Rahman

Md. Asif Rahman @asifzcpe

About: Hi, I'm Asif! I'm a seasoned Senior Software Engineer with a passion for building web applications that make an impact. With over 9 years of experience, I've honed my skills in a wide range of techs

Joined:
Sep 27, 2019

Single method accessors and mutators in laravel

Publish Date: Dec 27 '21
6 0

We have already known the usage of accessors and mutators. We use accessors in laravel model to modify any field data while retrieving the records and mutators to modify any field data while inserting to database.

So, to modify any field before, we needed two separate methods for a single filed i.e. one method for accessor and one for mutator but in latest laravel release I mean in laravel 8.77.0, we can use a single method for both accessor and mutator using closure .

Given below is the syntax for single mehtod accessor and mutator:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Carbon\Carbon;
class Order extends Model
{

    /**
     * Get the order tax.
     */
    protected function order_date(): Attribute
    {
        return new Attribute(
            fn ($value) => Carbon::parse($value)->format('d-m-Y'), // accessor
            fn ($value) => Carbon::parse($value)->format('Y-m-d'), // mutator
        );
    }
}
Enter fullscreen mode Exit fullscreen mode

In the above closures, the first closure is for accessor and the next for mutator.

Comments 0 total

    Add comment