eloquent-eager-limit-x-laravel-adjacency-list maintained by staudenmeir
Eloquent Eager Limit + Laravel Adjacency List
[!IMPORTANT] The
staudenmeir/eloquent-eager-limitpackage'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
| Laravel | Package |
|---|---|
| 10.x | 1.1 |
| 9.x | 1.0 |
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.
