yonyon / eloquent-schema-query
EloquentSchemaQuery is a library that extracts only required items from Eloquent.
Installs: 59
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
pkg:composer/yonyon/eloquent-schema-query
Requires
- php: >=5.4.0
- illuminate/database: ^5.4
This package is not auto-updated.
Last update: 2025-12-21 10:57:25 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' ] ) ]);