Mahmoud Al-HabashOpen to new projects
  • WorkWork
  • ServicesServices
  • LabLab
  • WritingWriting
  • ContactContact
Amman--:--عربي
Writing/Laravel

Laravel API Resources Transformation

Transform model data for API responses with resources.

16 January 20261 min readLaravelاقرأ بالعربية

On this page

  1. Create Resource
  2. Resource Class
  3. Use in Controller
  4. Additional Data

API resources:

Create Resource

php artisan make:resource UserResource

Resource Class

php
class UserResource extends JsonResource
{
    public function toArray($request)
    {
        return [
            'id' => $this->id,
            'name' => $this->name,
            'email' => $this->email,
            'posts' => PostResource::collection($this->whenLoaded('posts')),
        ];
    }
}

Use in Controller

php
return new UserResource($user);
return UserResource::collection($users);

Additional Data

return (new UserResource($user))->additional([
    'meta' => ['version' => '1.0'],
]);
All articles

Keep reading

  • Laravel Action Classes Pattern16 January 20261 min read
  • Laravel Action Classes: Single Responsibility16 January 20261 min read
  • Laravel API Rate Limiting16 January 20261 min read