yonyon / eloquent-schema-query
EloquentSchemaQuery is a library that extracts only required items from 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: 2025-06-08 08:21:43 UTC
README
EloquentSchemaQuery is a library that extracts only required items from Eloquent. Describe items to be acquired using schema.
Install
composer require yonyon/eloquent-schema-query::dev-master
Use Laravel
After updating composer, add the service provider to the providers array in config/app.php
'providers' => [
// Other service providers...
yonyon\EloquentSchemaQuery\Provider\EloquentSchemaQueryServiceProvider::class,
],
Also, add the facade to the aliases array in your app configuration file:
'EloquentSchemaQuery' => \yonyon\EloquentSchemaQuery\Facades\EloquentSchemaQuery::class,
Example
$user = User::find(1); $schema = new Schema([ 'id', 'name', 'todos' => new Schema([ 'name' ]) ]); $result = EloquentSchemaQuery::get($user, $schema);
When you want to change the item name
The second argument to schema is an alias for the item name.
$schema = new Schema([ 'id', 'name', 'todos' => new Schema([ 'name' ], 'todo_list') ]);
FunctionSchema
FunctionSchema is used when you want to obtain the result of executing eloquent's query, such as the number of todo.
$schema = new Schema([ 'id', 'name', 'todo_count' => new FunctionSchema(function($user) { return $user->todos->count(); }) ]);
If the query result is Collection or Model, you have to define schema as the second argument.
$schema = new Schema([ 'id', 'name', 'todo_count' => new FunctionSchema( function($user) { return $user->todos; }, new Schema([ 'name' ] ) ]);