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.
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"
Laravel | Package |
---|---|
10.x | 1.1 |
9.x | 1.0 |
Use the HasEagerLimitAndRecursiveRelationships
trait in your model:
class User extends Model
{
use \Staudenmeir\EloquentEagerLimitXLaravelAdjacencyList\Eloquent\HasEagerLimitAndRecursiveRelationships;
}
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.
Use the HasEagerLimitAndGraphRelationships
trait in your model:
class Node extends Model
{
use \Staudenmeir\EloquentEagerLimitXLaravelAdjacencyList\Eloquent\HasEagerLimitAndGraphRelationships;
}
Eager loading limits on graph relationships are not supported at the moment.
Please see CONTRIBUTING and CODE OF CONDUCT for details.