[英]Laravel LIMIT relation using Eloquent
我有一堆Shop
和Item
。 每個商店可以有許多不同的物品。 但是,我想得到所有的商店,每個商店只有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.