Laravel Eloquent Mutators
新版本的 Laravel 提供了一種更便捷的作法來定義 accessor 和 mutator,下面將會比較新舊版本之間的差異,原有方式在新版本當中還是有作兼容,但新的寫法是相對來說更加清晰好懂。 原做法 // 假定 users 有 name: // accessor protected function getNameAttribute($value) { return Str::mask($value, '*', 2); } // mutator protected function setNameAttribute($value) { $this->attributes['name'] = 'Mr.'.$value; } // 要偽裝一個不存在的欄位 accessor protected function getFirstNameAttribute($value) { return ucfirst($this->name); } 新做法 doc,將原有 accessor 和 mutator 綜合為同一個方法進行操作。 // 假定 users 有 name: protected function name(): Attribute { return Attribute::make( get: fn (string $value) => Str::mask($value, '*', 2), set: fn(string $value) => 'Mr....