как посчитать комментарии конкретного пользователя в отношении hasMany с помощью laravel - PullRequest
0 голосов
/ 27 мая 2018

как я могу посчитать комментарии конкретного пользователя в этом сценарии, у пользователя есть много книг, у книги есть много глав, главы принадлежат книге, а глава имеет много комментариев и комментариев, принадлежащих главе?

Пока эточто я сделал, но я не уверен, что это правильно, как я сделал на примере документации laravel.

    public function comments()
{
    return $this->hasManyThrough(
               'App\comments', 'App\Chapter','id','chapter_id'
    );
}

, и это мой цикл

@foreach($user_comments as $comment) {{$comment->comments->count()}} @endforeach

1 Ответ

0 голосов
/ 27 мая 2018

Вам нужно два отношения.Добавьте это к вашей User модели:

public function chapters()
{
    return $this->hasManyThrough(Chapter::class, Book::class);
}

И это к Chapter:

public function comments()
{
    return $this->hasMany(Comment::class);
}

Тогда вы можете считать комментарии следующим образом:

$user->load('chapters.comments');
$count = $user->chapters->pluck('comments')->collapse()->count();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...