gergonzalez/lumen-fractal

League Fractal 包装器

安装: 58

依赖项: 0

建议者: 0

安全性: 0

星级: 1

观察者: 2

分支: 0

开放问题: 0

类型:laravel-package

dev-master 2018-04-07 20:50 UTC

This package is not auto-updated.

Last update: 2024-09-23 13:52:30 UTC


README

此包提供了一种在 Lumen 中使用 Fractal 的简便方法。

Fractal 为复杂数据输出提供了展示和转换层,如 RESTful API 中所见。

入门指南

先决条件

  • Lumen <= 5.4
  • Lumen > 5.4 - 尚未测试

安装

通过 composer 拉取

composer require gergonzalez/lumen-fractal

安装后,在您的 bootstrap/app.php 中注册服务提供者

//Register Service Providers

$app->register(Gergonzalez\Fractal\FractalServiceProvider::class);

用法

实现您的转换器,在 app/Http/Transformers 中添加一个文件夹并将它们放在那里。

例如,UserTransformer.php

namespace App\Http\Transformers;

use League\Fractal\TransformerAbstract;
use App\User;

class UserTransformer extends TransformerAbstract
{
    protected $availableIncludes = [
    ];

    protected $defaultIncludes = [
    ];

    /**
     * Turn User object into a generic array.
     *
     * @return array
     */
    public function transform(User $user)
    {
        return [
            'id' => $user->id,
            'email' => $user->email,
        ];
    }
}

然后,在您的控制器中,如果您只检索一个项目

	use App\Http\Transformers\UserTransformer;

	class UserController extends Controller
	{

	    public function show(Request $request, $userId)
	    {
	        $user = User::findOrFail($userId);

	        return response()->json(app('fractal')->item($user, new UserTransformer())->getArray());
	    }

	}

或者一个集合

	use App\Http\Transformers\UserTransformer;

	class UserController extends Controller
	{

	    public function index(Request $request)
	    {
	        return response()->json(app('fractal')->collection(User::all(), new UserTransformer())->getArray());
	    }
	}

您还可以使用 includes、defaults 等。WIP 文档。

如果您需要一个使用示例,可以查看 这里

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件