您想要获得包含属于指定用户的图片的类别,因此您可以这样做(有点冗长):
Category::with(['subcats', 'subcats.objects' => function ($q) use ($user) { $q->with(['pictures' => function ($q) use ($user) { $q->where('user_id', $user->id); }]); }]) ->whereHas('subcats', function ($q) use ($user) { $q->whereHas('objects', function ($q) use ($user) { $q->whereHas('pictures', function ($q) use ($user) { $q->where('user_id', $user->id); }); }); }) ->get();您需要在
with()此处使用嵌套的闭包,因为使用点表示法可以加载两个以上级别的关系。
如果您不需要加载图片和子类别数据,则只需删除
with()一部分即可。
如果你也想过滤的子类别,封闭增加
with()了
subcats。



