LaravelPackages.net
Acme Inc.
Toggle sidebar
eyf/laravel-normalizr

Normalizr Laravel Eloquent API Resources

322
0
About eyf/laravel-normalizr

eyf/laravel-normalizr is a Laravel package for normalizr laravel eloquent api resources. It currently has 0 GitHub stars and 322 downloads on Packagist. Install it with composer require eyf/laravel-normalizr. Discover more Laravel packages by eyf or browse all Laravel packages to compare alternatives.

Last updated

laravel-normalizr

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
  }
}

Star History Chart