LaravelPackages.net
Acme Inc.
Toggle sidebar
staudenmeir/eloquent-eager-limit-x-laravel-adjacency-list

Merge of staudenmeir/eloquent-eager-limit and staudenmeir/laravel-adjacency-list

36.579
14
v1.2
About staudenmeir/eloquent-eager-limit-x-laravel-adjacency-list

staudenmeir/eloquent-eager-limit-x-laravel-adjacency-list is a Laravel package for merge of staudenmeir/eloquent-eager-limit and staudenmeir/laravel-adjacency-list. It currently has 14 GitHub stars and 36.579 downloads on Packagist (latest version v1.2). Install it with composer require staudenmeir/eloquent-eager-limit-x-laravel-adjacency-list. Discover more Laravel packages by staudenmeir or browse all Laravel packages to compare alternatives.

Last updated

Eloquent Eager Limit + Laravel Adjacency List

CI Code Coverage Scrutinizer Code Quality Latest Stable Version Total Downloads License

[!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

| 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.

Comments