eyf / laravel-normalizr
Normalizr Laravel Eloquent API Resources
dev-master
2020-06-19 11:33 UTC
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2025-01-19 22:54:03 UTC
README
Normalizr Laravel Eloquent API Resources
Install
composer require eyf/laravel-normalizr
Usage
use Eyf\Normalizr\Http\Resources\JsonResource; class User extends JsonResource { public function toArray($request) { return [ 'id' => $this->id, 'name' => $this->name, // ... 'posts' => Post::collection($this->whenLoaded('posts')), ]; } }
Controller
Assuming route model binding.
use App\Http\Resources\User as UserResource; class UserController extends Controller { public function find(Request $request, User $user) { $user->loadMissing('posts'); return new UserResource($user); } }
Response
{ "data": { "entities": { "users": { "1": { "id": 1, "name": "John", "posts": [2, 3] } }, "posts": { "2": { "id": 2, "title": "Post 2" }, "3": { "id": 3, "title": "Post 3" } } }, "result": 1 } }