Relations
your can chain every kind of query in initQuery() method.
// Eager loading de relations
$query->with(['user', 'category', 'comments']);
// Ou avec conditions sur les relations
$query->with(['comments' => function($q) {
$q->where('approved', true)->orderBy('created_at', 'desc');
}]);
// Filtrer par relation
if ($request->filled('category_id')) {
$query->where('category_id', $request->category_id);
}
// Filtrer avec whereHas
if ($request->filled('author_name')) {
$query->whereHas('user', function($q) use($request) {
$q->where('name', 'like', '%' . $request->author_name . '%');
});
}
// Compter les relations
$query->withCount(['comments', 'likes']);
// Filtres standards
if ($request->filled('name')) {
$query->where('name', $request->name);
}