$user = User::select(['id', 'name'])
->withCount([
'posts as success' => function ($query) {
$query->where('status', 0);
},
'posts as error' => function ($query) {
$query->whereIn('status', [1, 2, 3]);
},
])
->where('order', 3)
->get();
Model Post.php
:
public function users()
{
return $this->belongsTo(User::class);
}
Model User.php
:
public function posts()
{
return $this->hasMany(Post::class);
}
I want to count status
in post
table through relationship. Like the above code, I got the result I wanted. But it is very slow, about 10 seconds or more. Is there any way to fix it. My post table has 400,000 data
via Chebli Mohamed
1 commentaire:
Don't use withCount.
use separate count query for each item
Enregistrer un commentaire