laravel mutator and accessor code example

Example 1: get original name without mutant model laravel

Inside your model file:

1. In laravel older versions (5.x and older):
// that skips mutators
$this->getOriginal('name');

2. In laravel latest versions (6.x and above):
// that skips mutators
$model->getRawOriginal('name');

Alternative methods for getting value with mutator:
1. $this->attributes['name']
2. $this->getAttributes()['name']`

Example 2: laravel mutators

class Video extends Model
{
    public function setDurationInMinutesAttribute($value)
    {
        $this->attributes['duration_in_seconds'] = $value * 60;
    }

    public function setDurationInHoursAttribute($value)
    {
        $this->attributes['duration_in_seconds'] = $value * 60 * 60;
    }
}

Example 3: $this- attribute laravel

To define a mutator, define a setFooAttribute method on your model where Foo
  is the "studly" cased name of the column you wish to access. So, again,
lets define a mutator for the first_name attribute. This mutator will
be automatically called when we attempt to set the value of the first_name
attribute on the model:

class User extends Model
{
    public function setFirstNameAttribute($value)
    {
        $this->attributes['first_name'] = strtolower($value);
    }
}

Example 4: get the value without setter method laravel

Methods you can try : 
1. $model->getAttributes()['name']; //worked for me
2. $model->getOriginal('name');
3. $this->attributes['name'];

Tags:

Php Example