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

Merge of staudenmeir/eloquent-eager-limit and staudenmeir/laravel-adjacency-list
36,090 14
Install
composer require staudenmeir/eloquent-eager-limit-x-laravel-adjacency-list
Latest Version:v1.2
PHP:^8.1
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...

631,580,251 9,707
laravel/framework

The Laravel Framework.

580,311,802 34,925
laravel/tinker

Powerful REPL for the Laravel framework.

489,754,436 7,444
laravel/serializable-closure

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

404,034,618 608
nunomaduro/collision

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

387,976,821 4,658