Level 2
Ok, I finally found a solution : https://stackoverflow.com/questions/66547883/how-to-remove-links-in-the-meta-object-of-laravel-paginate-response
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
Hello, I'd like to format the pagination of all my Api Resources without having to create a "Collection" class for each Model.
I'd like to do it like this:
class UserCollection extends ResourceCollection
{
public function toArray($request)
{
return [
'data' => $this->collection->transform(function (User $user) {
return new UserResource($user);
}),
'meta' => [
'total_users' => $this->collection->count(),
],
];
}
}
For User, Post, Category models, etc...
Do you have any ideas? Thank you!
I tried this, but it does not work :
class GenericCollection extends ResourceCollection
{
protected static $resourceMap = [
Category::class => \App\Http\Resources\CategoryResource::class,
User::class => \App\Http\Resources\UserResource::class,
];
public function toArray($request)
{
return [
'data' => $this->collection->transform(function ($model) {
return self::getResourceClass($model);
}),
'foo' => 'bar',
];
}
protected static function getResourceClass($model)
{
foreach (self::$resourceMap as $modelClass => $resourceClass) {
if ($model instanceof $modelClass) {
return $resourceClass;
}
}
throw new Exception('Resource class not found', 500);
}
}
Ok, I finally found a solution : https://stackoverflow.com/questions/66547883/how-to-remove-links-in-the-meta-object-of-laravel-paginate-response
Please or to participate in this conversation.