Laravel - API Resources - Writing Resources

If you have not read the concept overview, you are highly encouraged to do so before proceeding with this documentation.

In essence, resources are simple. They only need to transform a given model into an array. So, each resource contains a toArray method which translates your model's attributes into an API friendly array that can be returned from your application's routes or controllers:

    
     $this->id,
                'name' => $this->name,
                'email' => $this->email,
                'created_at' => $this->created_at,
                'updated_at' => $this->updated_at,
            ];
        }
    }
	

Once a resource has been defined, it may be returned directly from a route or controller:

    
    use App\Http\Resources\UserResource;
    use App\Models\User;
    
    Route::get('/user/{id}', function ($id) {
        return new UserResource(User::findOrFail($id));
    });