簡體   English   中英

在 laravel 5 中按子實體分組,並帶有 eloquent

[英]group by child entity in laravel 5 with eloquent

我有這個表(簡化):

products:
    id,
    model_id,
    color

models:
   id,
   name

我想知道每種型號和每種顏色有多少產品,在 sql 中我可以這樣做:

SELECT models.name, count(*) 
FROM models
INNER JOIN products ON (models.id = products.model_id)
group by products.color, products.model_id

但我不能用 eloquent,這是我的代碼:

Model::with('products','products.model')->groupBy('products.color')->groupBy('products.model')->get();

拋出這個錯誤:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'products.color' in 'group statement' 

就像 eloquent 不知道與產品的關系模型,我缺少什么?

更新:Moein 向我發送了正確的方向,我可以通過這樣做來解決它:

Model::join('products', 'models.id', '=', 'products.model_id')
                ->selectRaw('products.*, count(*)')
                ->groupBy('products.color')
                ->groupBy('products.modelo_id')
                -> get();

更新:Moein 向我發送了正確的方向,我可以通過這樣做來解決它:

Model::join('products', 'models.id', '=', 'products.model_id')
            ->selectRaw('products.*, count(*)')
            ->groupBy('products.color')
            ->groupBy('products.modelo_id')
            -> get();

暫無
暫無

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

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