Laravel 5.3 withCount () вложенное отношение

Структура модели выглядит следующим образом

Учебник -> (hasMany) Главы -> (hasMany) видео

Как загрузить количество видео (video_count) из учебной модели с помощью метода larvel 5.3 с помощью метода count ()

Я пытался:

Tutorial::withCount('chapters') ->withCount('chapters.videos') // this gives error: Call to undefined method Illuminate\Database\Query\Builder::chapters.videos() ->all(); 

редактировать

Это работает, любое лучшее решение?

 Tutorial::withCount('chapters') ->with(['chapters' => function($query){ $query->withCount('videos'); }]) ->all(); 

Вы можете сделать только withCount() для определенного отношения модели.

Тем не менее, отношения могут быть hasManyThrough которые достигнут того, что вы после.

 class Tutorial extends Model { function chapters() { return $this->hasMany('App\Chapter'); } function videos() { return $this->hasManyThrough('App\Video', 'App\Chapter'); } } 

И тогда вы можете сделать:

Tutorial::withCount(['chapters', 'videos'])

Docs: