百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
E

eloquent-eager-limit

> 编程语言
开源

Laravel Eloquent 使用限制的即时加载

884 stars0 点赞4 次浏览
访问官网GitHub

工具介绍

Laravel Eloquent 使用限制的即时加载

Eloquent Eager Limit

[!IMPORTANT] 该包的代码已合并到 Laravel 11+ 中,现在支持原生的即时加载限制。

  • MySQL 5.7+
  • MySQL 5.5~5.6: 由于 MySQL 中的一个错误,该包只在禁用严格模式下才能正常工作。 在 config/database.php 文件中,为 MySQL 连接设置 'strict' => false,。
Laravel 包
10.x 1.8
9.x 1.7
8.x 1.6
7.x 1.5
6.x 1.4
5.8 1.3
5.5–5.7 1.2

使用方法

在父类和相关模型中都使用 HasEagerLimit 特征,并对关系应用 limit()/take():

php
class User extends Model
{
    use \Staudenmeir\EloquentEagerLimit\HasEagerLimit;

    public function posts()
    {
        return $this->hasMany('App\Post');
    }
}

class Post extends Model
{
    use \Staudenmeir\EloquentEagerLimit\HasEagerLimit;
}

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

通过应用 limit(1) 来提高 HasOne/HasOneThrough/MorphOne 关系的性能:

php
class User extends Model
{
    use \Staudenmeir\EloquentEagerLimit\HasEagerLimit;

    public function latestPost()
    {
        return $this->hasOne('App\Post')->latest()->limit(1);
    }
}

class Post extends Model
{
    use \Staudenmeir\EloquentEagerLimit\HasEagerLimit;
}

$users = User::with('latestPost')->get();

您还可以将 offset()/skip() 应用于您的关系: php class User 扩展

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

PHP

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言