簡體   English   中英

使用雄辯的Laravel LIMIT關系

[英]Laravel LIMIT relation using Eloquent

我有一堆ShopItem 每個商店可以有許多不同的物品。 但是,我想得到所有的商店,每個商店只有4件。

以下為我提供了所有商店及其所有物品:

$shops = Shop::with('items')->get();

以下提供了我所有的商店,但總共只有4件 ,而並非每件。

$shops = Shop::with(array('items' => function($query) {
    $query->take(4);
}))->get();

如何獲得所有的商店,每個商店有4種商品?

這是由於SQL限制。 當渴望加載某些東西時,laravel會生成一個如下所示的SQL查詢

SELECT * FROM xyz WHERE id IN (1, 2...) LIMIT 4;

因此,SQL引擎僅返回4行。

我在laravel中找不到快速解決方法。 即使在原始SQL中,這也是一個很難解決的問題。

關於此主題的一些閱讀方法如何在sql中選擇每個組的第一/最小/最大行

Shop::with(array('items' => function($query) {
    $query->limit(4);
}))->get();

極限更換應該可以解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM