Вони перетворюють атрибути моделі «на льоту». У сучасному Laravel обидва описуються одним методом, що повертає Attribute:
protected function name(): Attribute
{
return Attribute::make(
get: fn (string $value) => ucfirst($value), // accessor (читання)
set: fn (string $value) => strtolower($value), // mutator (запис)
);
}
- Accessor форматує значення при отриманні (
$user->name). - Mutator форматує значення перед збереженням у БД.
Корисно для форматування, нормалізації або роботи з Value Objects.