feat: add relations in like and save

This commit is contained in:
2026-06-16 19:13:07 +03:30
parent 42f3808343
commit f3f05958a6
2 changed files with 20 additions and 2 deletions
+14 -1
View File
@@ -4,9 +4,22 @@
use Illuminate\Http\Request;
use App\Models\SavedItem;
use Illuminate\Database\Eloquent\Relations\MorphTo;
class SaveController extends Controller
{
// Relations to eager-load for each saveable/likeable type so the full
// model (with its categories, images, tags, ...) is returned.
public static function morphRelations(): array
{
return [
\App\Models\Media::class => ['image', 'detailImage', 'categories', 'subCategories', 'tags'],
\App\Models\Music::class => ['image', 'playlists', 'tags'],
\App\Models\MusicPlaylist::class => ['image', 'detailImage', 'categories', 'subcategories'],
\App\Models\BreathingTemplate::class => ['image', 'breathingColor'],
];
}
/**
* Save an item (music, media, breathing template, etc.)
*/
@@ -95,7 +108,7 @@ public function mySavedItems(Request $request)
{
$type = $request->get('type'); // Optional filter by type
$query = SavedItem::with('saveable')
$query = SavedItem::with(['saveable' => fn (MorphTo $m) => $m->morphWith(self::morphRelations())])
->where('user_id', auth()->id());
if ($type) {