Laravel Eager Loading with Count Relationship Example

By Hardik Savani August 18, 2019 Category : Laravel

Eager Loading is a concept of laravel relationship and it is a best. But when you are working with model relationship with eager loading then you require to get count number of records for relation model. At that we can use withcount() for eager loading count in laravel 6, laravel 7 and laravel 8.

Whenever you require to count rows of relation model then we will use withcount(). So that can help us. you can see bellow example. i will count number of comments for each posts. you can see bellow example.

Let's see bellow example. So might be it can help you.

Simple Count Example:

$posts = Post::withCount('comments')->get();

// comments_count

Multiple Counts Example:

$posts = Post::withCount([

'comments',

'tags'

])->get();

// comments_count

// tags_count

Count with Condition Example:

$posts = Post::withCount([

'comments',

'comments as active_comments' => function (Builder $query) {

$query->where('approved', 1);

}

])->get();

// comments_count

// active_comments

I hope it can help you...