eventhomes/laravel-fractalhelper

兼容Laravel 5+和Lumen 5+

2.0.1 2020-01-28 10:33 UTC

This package is auto-updated.

Last update: 2024-08-29 02:09:50 UTC


README

一个简单的API控制器助手,利用league fractal。您还可以获得https://github.com/eventhomes/laravel-apicontroller提供的所有功能。

安装

composer require eventhomes/laravel-fractalhelper

基本用法

默认情况下,此助手将使用ArraySerializer(),无需设置。但是,您可能需要解析GET包含项。

...
use EventHomes\Api\FractalHelper;

class MyController extends Controller {

    use FractalHelper;

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

自定义Fractal

如果您需要更改默认的ArraySerializer(),可以进行修改。

...
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', ''));
    }
}

响应单个项目

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

响应集合

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

响应分页集合

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