staudenmeir/eloquent-eager-limit-x-laravel-adjacency-list

Merge of staudenmeir/eloquent-eager-limit and staudenmeir/laravel-adjacency-list
36,619 14
Install
composer require staudenmeir/eloquent-eager-limit-x-laravel-adjacency-list
Latest Version:v1.2
PHP:^8.1
Laravel:10
Older releases:9
License:MIT
Last Updated:Mar 9, 2024
Links: GitHub  ·  Packagist
Maintainer: staudenmeir

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.

Related Packages

doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

644,549,754 9,698
laravel/framework

The Laravel Framework.

598,760,099 34,966
laravel/tinker

Powerful REPL for the Laravel framework.

507,193,856 7,441
laravel/serializable-closure

Laravel Serializable Closure provides an easy and secure way to serialize closur...

423,477,751 607
nunomaduro/collision

Cli error handling for console/command-line PHP applications.

403,217,078 4,664

Version History

Version Released PHP Laravel License
v1.2 ^8.1 ^10.0 MIT
v1.1.1 ^8.1 ^10.0 MIT
v1.1 ^8.1 ^10.0 MIT
v1.0.2 ^8.0.2 ^9.0 MIT
v1.0.1 ^8.0.2 ^9.0 MIT