【问题标题】:Sub query with eloquent relationship具有雄辩关系的子查询
【发布时间】:2021-07-18 01:30:13
【问题描述】:

我有带有 is_featured 列的类别表。现在我想选择具有 3 个产品的特色类别(限制 3 个或每个特色类别)。我尝试使用以下代码,但仅从第一个特色类别中获得 3 个产品。

$categories = Category::where('is_featured', true)->with('products', function ($query){
        $query->take(3);
    })->get();

谁能帮我解决这个问题? 提前致谢

【问题讨论】:

标签: laravel eloquent


【解决方案1】:

看起来默认情况下它不支持有限制的预先加载

要解决这个问题,你可以安装以下库

https://github.com/staudenmeir/eloquent-eager-limit

并在两个模型中使用以下特征

use \Staudenmeir\EloquentEagerLimit\HasEagerLimit;

如果你正在寻找没有图书馆的那么

参考:Laravel Eloquent limit results for relationship

Ref:Eager-loading with a limit on collection 只加载集合中的最后一个元素

https://github.com/laravel/framework/issues/18014

【讨论】:

    猜你喜欢
    • 2018-12-09
    • 2021-06-17
    • 2016-07-01
    • 1970-01-01
    • 2016-02-26
    • 2014-04-12
    • 2013-07-17
    • 2015-03-26
    • 2014-01-16
    相关资源
    最近更新 更多