feat: add relations in like and save
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
namespace App\Http\Controllers;
|
||||
use App\Models\Like;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Database\Eloquent\Relations\MorphTo;
|
||||
|
||||
class LikeController extends Controller
|
||||
{
|
||||
@@ -94,7 +95,11 @@ public function myLikedItems(Request $request)
|
||||
{
|
||||
$type = $request->get('type'); // Optional filter by type (music or media)
|
||||
|
||||
$query = Like::with('likeable')
|
||||
$query = Like::with(['likeable' => fn (MorphTo $m) => $m->morphWith([
|
||||
\App\Models\Media::class => ['image', 'detailImage', 'categories', 'subCategories', 'tags'],
|
||||
\App\Models\Music::class => ['image', 'playlists', 'tags'],
|
||||
\App\Models\MusicPlaylist::class => ['image', 'detailImage', 'categories', 'subcategories'],
|
||||
])])
|
||||
->where('user_id', auth()->id());
|
||||
|
||||
if ($type) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user