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