If you notice that you use same relationship often with additional "where" or "orderBy" condition, you can create a separate relationship method.
Model:
// Model:public function comments(){ return $this->hasMany(Comment::class);} public function approvedComments(){ return $this->comments() ->where('approved', 1);} public function latestApprovedComments(){ return $this->comments() ->where('approved', 1) ->orderBy('created_at', 'desc');}
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
How to Build Laravel 13 API From Scratch
30 lessons
1 h 23 min
[NEW] Laravel AI SDK: 6 Practical Examples
9 lessons
1 h 02 min
Livewire v3 to v4: Changes You Need to Know
7 lessons
31 min