具有雄辩关系的子查询

时间:2021-07-17 17:10:45

标签: laravel eloquent

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

并在模型中使用以下特征

use \Staudenmeir\EloquentEagerLimit\HasEagerLimit;

如果您正在寻找没有图书馆的内容

参考:Laravel Eloquent limit results for relationship

Ref:Eager-loading 限制集合只加载集合中的最后一个元素

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