[英]Laravel / Eloquent model with custom relations
想像:
我有一個帶有價格列的廣告表。 我有一個pricerange表,其中有price_from和price_to列。
我想設置我的Eloquent模型,以便可以從Pricerange實例中獲取匹配的廣告。 或查詢價格范圍表,並對所有匹配的廣告進行計數。 (可選)從adverts-relation獲取查詢並添加更多條件。
換句話說,我想要這個原始查詢的等效項:
SELECT priceranges.*, (
SELECT COUNT(adverts.id) FROM adverts
WHERE adverts.price >= priceranges.price_from
AND adverts.price < priceranges.price_to
) AS adverts_count
FROM priceranges
要么
SELECT priceranges.*, COUNT(adverts.id) AS adverts_count
FROM priceranges
INNER JOIN adverts ON adverts.price >= priceranges.price_from
AND adverts.price < priceranges.price_to
GROUP BY priceranges.id
這可能嗎? 我搜索了自定義關系,但是找不到有效的解決方案。
提前致謝!
你可以做這樣的事情,
Priceranges::join('adverts',function($join){
$join->on('adverts.price','>=','priceranges.price_from')->orOn('adverts.price','<','priceranges.price_to');
})
->groupBy('priceranges.id')
->get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.