gergonzalez / lumen-fractal
League Fractal 包装器
dev-master
2018-04-07 20:50 UTC
Requires
- php: >=5.6.4
- league/fractal: ^0.15.0
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)。有关更多信息,请参阅 许可证文件