簡體   English   中英

Laravel /具有自定義關系的雄辯模型

[英]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.

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