aammui / l9-repository
此包的最新版本(v0.0.5)没有可用的许可证信息。
Laravel 的仓库模式
v0.0.5
2023-08-26 14:48 UTC
Requires
- php: ^8.1
- illuminate/database: ^9.39|^10.0
- league/fractal: ^0.20.1
Requires (Dev)
- orchestra/testbench: ^7.12
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-26 17:26:37 UTC
README
为 Laravel 的 Eloquent 模型提供基本数据层包装器,具有转换器、过滤器、缓存等功能。
安装
composer require aammui/l9-repository
使用
转换器
首先定义一个 UserTransformer
class UserTransformer extends TransformerAbstract { public function transform(User $user) { return [ 'id' => $user->id, 'name' => $user->name ]; } }
然后使用它,
app()->make(UserRepository::class) ->setTransformer(UserTransformer::class) ->get();
或者使用自定义包含项,
app()->make(UserRepository::class) ->setTransformer(UserTransformer::class, function(\League\Fractal\Manager $manager){ $manager->parseIncludes('role'); }) ->get();
并在 UserTransformer
中将 role
添加到 availableIncludes
protected array $availableIncludes = [ 'role' ]; public function transform(User $user){...} public function includeRole(User $user): Item { $author = $user->role; return $this->item($author, new class extends TransformerAbstract { public function transform(Role $role): array { return [ 'id' => $role->id, 'label' => $role->label, ]; } }); }
鸣谢
许可证
MIT 许可证(MIT)。有关更多信息,请参阅许可证文件。