1
votes

Laravel: Comment obtenir le nombre total de commentaires sur le nombre total de messages

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.


0 commentaires

4 Réponses :


3
votes

Vous pouvez faire au moins deux manières.

$total = Comment::count();
  • Comptage directement à partir du modèle Comment (dans votre cas, je vais opter pour cette approche):
$posts = Post::withCount('comments')->get();
$total = $posts->sum('comments_count');


1 commentaires

@Miri heureux de vous aider.



1
votes

Peut-être que vous devez procéder d'une manière différente:

Comment::whereNotNull('post_id')->count();


0 commentaires

1
votes
Post::withcount('comment')->where('post_id', $post_id)->get();
Try This One.

0 commentaires

1
votes
$total = Comment::all()->count();

0 commentaires