New way to define attribute accessors and mutators in Laravel 8.77:
// Before, two-method approachpublic function setTitleAttribute($value){ $this->attributes['title'] = strtolower($value);}public function getTitleAttribute($value){ return strtoupper($value);} // New approachprotected function title(): Attribute{ return new Attribute( get: fn ($value) => strtoupper($value), set: fn ($value) => strtolower($value), );}
Actually, both approaches still work, and it's your personal preference which one to use.
Tip given by @Teacoders
Enjoyed This Tip?
Get access to all premium tutorials, video and text courses, and exclusive Laravel resources. Join our community of 10,000+ developers.
Recent Courses on Laravel Daily
AI Agents/IDEs for Laravel: May 2026 (Claude Code, Codex, OpenCode, etc)
7 lessons
52 min
Testing in Laravel 13 For Beginners
26 lessons
1 h 41 min read
[FREE] Laravel 13 for Beginners: 3 Demo Projects
5 lessons
29 min