Under the hood, the withAvg/withCount/withSum and other methods in Eloquent use the 'withAggregate' method. You can use this method to add a subselect based on a relationship
// Eloquent Modelclass Post extends Model{ public function user() { return $this->belongsTo(User::class); }} // Instead of eager loading all users...$posts = Post::with('user')->get(); // You can add a subselect to only retrieve the user's name...$posts = Post::withAggregate('user', 'name')->get(); // This will add a 'user_name' attribute to the Post instance:$posts->first()->user_name;
Tip given by @pascalbaljet
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
[NEW] Building a Typical Laravel SaaS
8 lessons
1 h 07 min
Laravel 12 For Beginners: Your First Project
15 lessons
1 h 32 min
PhpStorm Junie AI for Laravel Projects: Crash Course
7 lessons
36 min