pluck('id')->toArray(); $feeds = Feed::query(); if ($where) { $feeds = $feeds->where('id', '<', $where); } if($only){ if($only == 'image'){ //$feeds = $feeds->whereHasMorph('feedable', [Image::class]); $feeds = $feeds->where('type', 'images'); } if($only == 'video'){ //$feeds = $feeds->whereHasMorph('feedable', [Video::class]); $feeds = $feeds->where('type', 'videos'); } if($only == 'music'){ //$feeds = $feeds->whereHasMorph('feedable', [Music::class]); $feeds = $feeds->where('type', 'musics'); } } $feeds = $feeds->whereIn('user_id', $users_id) ->orderBy('id', 'desc') ->limit(10) ->withCount([ 'comments', 'likes', 'likes as liked' => function (Builder $query) { $query->where('user_id', auth()->user()->id); }]) ->withCasts(['liked' => 'boolean']) ->with('tags', 'media')->get(); $feed_collect = collect(); foreach ($feeds as $feed) { $feed = FeedData::fromDataBase($feed, $users); $feed['entity']->tags->transform(function ($item) { return [ 'id' => $item->id, 'name' => $item->name, 'slug' => $item->slug, ]; }); $feed_collect[] = $feed; } return $feed_collect; } }