How to use mutator and accessor in Laravel 9 with example

In this tutorial we will discuss laravel 9 mutator and accessor. What is difference between laravel mutator and accessor. Laravel 9 getter and setter with example.

Laravel 9 mutator and accessor

laravel mutator and accessor also called setter and getter method. These two concepts are used when we get db value by model and save values throw modal. Laravel 9 provides new features in mutator and accessor. Now we discuss mutator and accessor with example.

Laravel mutator

Laravel mutator is also called setter when we save records in db throw eloquent model mutators change(particular column) value according to logic which is set in model and save it. Let's see an example where employee_name is always saving to lowercase.

class User extends Model
{
  protected function EmployeeName(): Attribute
  {
    return Attribute::make(
      set: fn ($value) => strtolower($value),
    );
  }
}

Laravel accessor

laravel accessor is work when access(get data) data throw model. When we get data throw model and want to change a column value according to some logic then use accessor in the model. For example we will get dob data in y-m-d format.

class User extends Model
{
  protected function dob(): Attribute
  {
    return Attribute::make(
      get: fn ($value) => date("y-m-d", strtotime($value)),
    );
  }
}

We also use mutator and accessor for same column see in example dob save in date format y/m/d and get in y-m-d format.

class User extends Model
{
	protected function dob(): Attribute
    {
      return Attribute::make(
        get: fn ($value) => date("y-m-d", strtotime($value)),
        set: fn ($value) => date("y/m/d", strtotime($value)),
      );
    }
}
php laravel developer anmol sharma

Anmol Sharma

I am a software engineer and have experience in web development technologies like php, Laravel, Codeigniter, javascript, jquery, bootstrap and I like to share my deep knowledge by these blogs.

Random tutorial links