为 Laravel 应用程序构建的 Fractal
10

分享链接:https://github.com/spatie/laravel-fractal
看了教程 Laravel 教程 - 实战构架 API 服务器 推荐使用 Fractal 奈何自己在写 API 时候没有使用 DingoApi 却是使用了 Passport

每次使用的时候都需要,这样:

use League\Fractal;
use League\Fractal\Manager;
use League\Fractal\Resource\Collection;
use League\Fractal\Serializer\DataArraySerializer;
use League\Fractal\Serializer\ArraySerializer;
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
use League\Fractal\Serializer\JsonApiSerializer;

还有这样:

return (new Manager())->setSerializer(new ArraySerializer())
    ->parseIncludes('user')
    ->createData(
        (new Collection($dueDetails->paginate(10)->getCollection(), new ProjectTransformer(), 'data'))
        ->setPaginator(new IlluminatePaginatorAdapter($dueDetails->paginate(10)))
        ->setMeta([
            'count_due_capital' => $dueDetails->count(),
            'sum_due_capital' => $dueDetails->sum('due_capital')
        ])
    )
    ->toArray();

感觉很痛苦。

然后就在 Github 上找到了这个 spatie/laravel-fractal

然后代码就变成这样:

return fractal()
    ->withResourceName('data')
    ->collection($dueDetails->paginate(10)->getCollection())
    ->transformWith(new ProjectTransformer())
    ->paginateWith(new IlluminatePaginatorAdapter($dueDetails->paginate(10)))
    ->addMeta([
            'count_due_capital' => $dueDetails->count(),
            'sum_due_capital' => $dueDetails->sum('due_capital')
    ])
    ->includeUser()
    ->toArray();
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!