yonyon / eloquent-schema-query
EloquentSchemaQuery 是一个库,它从 Eloquent 中提取所需的项目。
v1.0.1
2017-08-16 19:00 UTC
Requires
- php: >=5.4.0
- illuminate/database: ^5.4
This package is not auto-updated.
Last update: 2024-09-29 05:01:24 UTC
README
EloquentSchemaQuery 是一个库,它从 Eloquent 中提取所需的项目。使用模式描述要获取的项目。
安装
composer require yonyon/eloquent-schema-query::dev-master
使用 Laravel
更新 composer 后,将服务提供者添加到 config/app.php 文件中的 providers 数组中
'providers' => [
// Other service providers...
yonyon\EloquentSchemaQuery\Provider\EloquentSchemaQueryServiceProvider::class,
],
同时,将外观添加到您的应用程序配置文件中的 aliases 数组中
'EloquentSchemaQuery' => \yonyon\EloquentSchemaQuery\Facades\EloquentSchemaQuery::class,
示例
$user = User::find(1); $schema = new Schema([ 'id', 'name', 'todos' => new Schema([ 'name' ]) ]); $result = EloquentSchemaQuery::get($user, $schema);
当您想更改项目名称时
schema 的第二个参数是项目名称的别名。
$schema = new Schema([ 'id', 'name', 'todos' => new Schema([ 'name' ], 'todo_list') ]);
FunctionSchema
当您想要获取执行 Eloquent 查询的结果,例如待办事项的数量时,使用 FunctionSchema。
$schema = new Schema([ 'id', 'name', 'todo_count' => new FunctionSchema(function($user) { return $user->todos->count(); }) ]);
如果查询结果是 Collection 或 Model,您必须将 schema 定义为第二个参数。
$schema = new Schema([ 'id', 'name', 'todo_count' => new FunctionSchema( function($user) { return $user->todos; }, new Schema([ 'name' ] ) ]);