Backend Development Laravel Subjective
Sep 30, 2025

Explain API resource transformations in Laravel with code examples.

Detailed Explanation
API Resources provide a transformation layer between models and JSON responses: **Creating Resource:**
php artisan make:resource UserResource
php artisan make:resource UserCollection
**Resource Class (app/Http/Resources/UserResource.php):**
class UserResource extends JsonResource {
    public function toArray($request) {
        return [
            "id" => $this->id,
            "name" => $this->name,
            "email" => $this->email,
            "created_at" => $this->created_at->format("Y-m-d H:i:s"),
            "posts_count" => $this->posts->count(),
            "posts" => PostResource::collection($this->whenLoaded("posts")),
            "profile" => new ProfileResource($this->whenLoaded("profile")),
        ];
    }
    
    public function with($request) {
        return [
            "version" => "1.0",
            "author_url" => url("http://author.com"),
        ];
    }
}
**Using in Controller:**
public function show(User $user) {
    return new UserResource($user->load("posts", "profile"));
}

public function index() {
    return UserResource::collection(User::paginate());
}
Discussion (0)

No comments yet. Be the first to share your thoughts!

Share Your Thoughts
Feedback