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

staudenmeir/eloquent-eager-limit 和 staudenmeir/laravel-adjacency-list 的合并

v1.2 2023-05-14 09:54 UTC

This package is auto-updated.

Last update: 2024-09-09 13:44:52 UTC


README

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

重要

staudenmeir/eloquent-eager-limit 包的代码已合并到 Laravel 11+,并且原生支持预加载限制。

此 Laravel 包将 staudenmeir/eloquent-eager-limitstaudenmeir/laravel-adjacency-list 合并,以便它们可以在同一模型中使用。

支持 Laravel 9–10。

安装

composer require staudenmeir/eloquent-eager-limit-x-laravel-adjacency-list:"^1.0"

如果您在 Windows 的 PowerShell 中(例如在 VS Code 中),请使用此命令

composer require staudenmeir/eloquent-eager-limit-x-laravel-adjacency-list:"^^^^1.0"

版本

用法

在您的模型中使用 HasEagerLimitAndRecursiveRelationships 特性

class User extends Model
{
    use \Staudenmeir\EloquentEagerLimitXLaravelAdjacencyList\Eloquent\HasEagerLimitAndRecursiveRelationships;
}

限制

Descendants 关系仅在查询按广度优先排序(兄弟在子代之前)时支持预加载限制

$users = User::with([
    'descendants' => function ($query) {
        $query->breadthFirst()->limit(10);
    }
])->get();

*OfDescendants 关系不支持预加载限制。

图形

在您的模型中使用 HasEagerLimitAndGraphRelationships 特性

class Node extends Model
{
    use \Staudenmeir\EloquentEagerLimitXLaravelAdjacencyList\Eloquent\HasEagerLimitAndGraphRelationships;
}

限制

目前不支持图形关系的预加载限制。

贡献

请参阅 CONTRIBUTING行为准则 了解详情。