sevming / laravel-api-resource
Laravel API Resource
1.0.0
2021-09-14 07:12 UTC
Requires
- php: >=7.4
- ext-json: *
This package is auto-updated.
Last update: 2024-09-14 14:24:34 UTC
README
要求
- PHP >= 7.4
- Composer
安装
$ composer require sevming/laravel-api-resource -vvv
使用方法
说明事项
- 建议与 sevming/laravel-response 配合使用
- 支持资源、集合、分页、自定义分页的数据处理
- show() 的优先级大于 hide()
- 列表数据处理(MockUserResource 资源类)
- MockUserResource::collection($list)
- MockUserCollection::make($list)
资源
- MockUserResource
<?php namespace App\Http\Resources\Mock; use Sevming\LaravelApiResource\BaseResource; class MockUserResource extends BaseResource { public const SCENE_LIST = 'list'; public const SCENE_INFO = 'info'; public function toArray($request) { switch ($this->scene) { case self::SCENE_LIST: $this->show(['id', 'account']); break; case self::SCENE_INFO: $this->hide(['password']); break; default: break; } return $this->filterFields([ 'id' => $this->id, 'account' => $this->account, 'password' => $this->password, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at, ]); } public function with($request) { return [ 'with' => 'with resource', ]; } }
- 调用示例
$user = MockUser::find(1); return MockUserResource::make($user); return MockUserResource::make($user)->show(['id']); return MockUserResource::make($user)->hide(['id']); return MockUserResource::make($user)->scene(MockUserResource::SCENE_LIST); return MockUserResource::make($user) ->scene(MockUserResource::SCENE_LIST) ->show(['created_at']) ->additional([ 'additional' => 'additional resource' ]);
集合
- 调用示例
$list = MockUser::get(); return MockUserResource::collection($list); return MockUserResource::collection($list)->show(['id']); return MockUserResource::collection($list)->hide(['id']); return MockUserResource::collection($list)->scene(MockUserResource::SCENE_LIST); return MockUserResource::collection($list) ->scene(MockUserResource::SCENE_LIST) ->show(['created_at']) ->additional([ 'additional' => 'additional collection' ]);
贡献
你可以通过以下三种方式之一进行贡献
代码贡献过程并不非常正式。你只需确保遵循 PSR-0、PSR-1 和 PSR-2 编码规范。任何新的代码贡献都必须附有适用的单元测试。
许可证
MIT