staudenmeir / eloquent-eager-limit-x-laravel-adjacency-list
Merge of staudenmeir/eloquent-eager-limit and staudenmeir/laravel-adjacency-list
Fund package maintenance!
paypal.me/JonasStaudenmeir
Installs: 18 032
Dependents: 0
Suggesters: 0
Security: 0
Stars: 14
Watchers: 4
Forks: 1
Open Issues: 0
Requires
- php: ^8.1
- illuminate/database: ^10.0
- staudenmeir/eloquent-eager-limit-x-laravel-cte: ^1.1.1
- staudenmeir/laravel-adjacency-list: ^1.13.5
Requires (Dev)
- doctrine/dbal: ^3.5.2
- phpunit/phpunit: ^10.0
- staudenmeir/eloquent-has-many-deep: ^1.18
README
Important
The staudenmeir/eloquent-eager-limit
package's code has been merged into Laravel 11+ and eager loading limits are now supported natively.
This Laravel package merges staudenmeir/eloquent-eager-limit and staudenmeir/laravel-adjacency-list to allow them being used in the same model.
Supports Laravel 9–10.
Installation
composer require staudenmeir/eloquent-eager-limit-x-laravel-adjacency-list:"^1.0"
Use this command if you are in PowerShell on Windows (e.g. in VS Code):
composer require staudenmeir/eloquent-eager-limit-x-laravel-adjacency-list:"^^^^1.0"
Versions
Usage
Trees
Use the HasEagerLimitAndRecursiveRelationships
trait in your model:
class User extends Model { use \Staudenmeir\EloquentEagerLimitXLaravelAdjacencyList\Eloquent\HasEagerLimitAndRecursiveRelationships; }
Limitations
Descendants
relationships only support eager loading limits when the query is ordered breadth-first (siblings before
children):
$users = User::with([ 'descendants' => function ($query) { $query->breadthFirst()->limit(10); } ])->get();
*OfDescendants
relationships do not support eager loading limits.
Graphs
Use the HasEagerLimitAndGraphRelationships
trait in your model:
class Node extends Model { use \Staudenmeir\EloquentEagerLimitXLaravelAdjacencyList\Eloquent\HasEagerLimitAndGraphRelationships; }
Limitations
Eager loading limits on graph relationships are not supported at the moment.
Contributing
Please see CONTRIBUTING and CODE OF CONDUCT for details.