*/ $mediaList = Media::cacheForever()->withTrashed()->fromSub( Media::query()->whereHas('articles', function ($q) use ($article) { $q->where('noArt', $article->noArt); })->whereHas('typeMedia', function ($q) { $q->whereIn('libelle', ['Photo', 'jpeg']); })->where('isLocked', false) ->where('statut', '!=', MediaStatut::brouillon) ->orderBy('version', 'DESC') // ! Maria Hack: use limit to preserve order. ->limit(\PHP_INT_MAX), 'mediaList' )->groupBy(['mediaList.type_vue_id', 'mediaList.variante_id']) ->paginate(); return new MediaListResource($mediaList, true); } /** * Get Media picture resource * * @param \App\Models\Media $media * @return \Illuminate\Http\Resources\Json\JsonResource */ public function getMediaPicture(Media $media): JsonResource { return new MediaPictureResource($media); } }