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();