eventhomes / laravel-fractalhelper by lostincode

Compatible with Laravel 5+ and Lumen 5+.
88,690
7
5
Package Data
Maintainer Username: lostincode
Maintainer Contact: roundedvision@gmail.com (Bill Richards)
Package Create Date: 2015-06-21
Package Last Update: 2020-01-28
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-05-16 15:01:01
Package Statistics
Total Downloads: 88,690
Monthly Downloads: 3
Daily Downloads: 0
Total Stars: 7
Total Watchers: 5
Total Forks: 0
Total Open Issues: 0

Laravel 5 / Lumen 5 Fractal Api Controller

A simple api controller helper utilizing league fractal. You also get all the functionality provided by https://github.com/eventhomes/laravel-apicontroller

Installation

composer require eventhomes/laravel-fractalhelper

Basic Usage

By default, this helper will use ArraySerializer(), no setup required. You may, however, need to parse the GET includes.

...
use EventHomes\Api\FractalHelper;

class MyController extends Controller {

    use FractalHelper;

    public function __construct(Request $request)
    {
        $this->parseIncludes($request->get('includes', ''));
    }
}

Customize Fractal

If you need to change the default ArraySerializer(), you can modify.

...
use EventHomes\Api\FractalHelper;

class MyController extends Controller {

    use FractalHelper;

    public function __construct(Manager $manager, Request $request)
    {
        $manager->setSerializer(new JsonApiSerializer);
        $this->setFractal($manager)->parseIncludes($request->get('includes', ''));
    }
}

Respond with item

public function show($id)
{
    $user = User::find($id);
    return $this->respondWithItem($user, new UserTransformer);
}

Respond with collection

public function index()
{
    $users = User::all();
    return $this->respondWithCollection($users, new UserTransformer);
}

Respond with collection, paginated

public function index()
{
    $users = User::paginate(10);
    return $this->respondWithCollection($users, new UserTransformer);
}