J'ai 10000 messages et chaque message contient de nombreux commentaires. Je dois calculer le nombre de commentaires lorsque je prends des messages.
Post::get()->comments()-count()
il y a au total 9 commentaires. Je veux obtenir ce nombre.
Dans laravel, il est possible d'obtenir le nombre de hasMany relation d'une ligne
Post::first()->comments()-count()
J'ai besoin comme ceci:
[
'post_1' => [
'comments' => [
'comment_1' => 'trst comment',
'comment_2' => 'trst comment',
'comment_3' => 'trst comment',
],
],
'post_2' => [
'comments' => [
'comment_1' => 'trst comment',
'comment_2' => 'trst comment',
'comment_3' => 'trst comment',
],
],
'post_3' => [
'comments' => [
'comment_1' => 'trst comment',
'comment_2' => 'trst comment',
'comment_3' => 'trst comment',
],
],
]
Je ne veux pas utiliser foreach car mon serveur peut tomber en panne.
4 Réponses :
Vous pouvez faire au moins deux manières.
$total = Comment::count();
Comment (dans votre cas, je vais opter pour cette approche): $posts = Post::withCount('comments')->get();
$total = $posts->sum('comments_count');
@Miri heureux de vous aider.
Peut-être que vous devez procéder d'une manière différente:
Comment::whereNotNull('post_id')->count();
Post::withcount('comment')->where('post_id', $post_id)->get();
Try This One.
$total = Comment::all()->count();