我有3个型号。
Company
Product
Offer
Company
有很多Products
。
Product
有许多Offers
。
如何获得Offers
Company
的数量/数量?
答案 0 :(得分:2)
尝试以下方法:
Offer::whereHas('product', function($query) use ($company_id) {
$query->where('company_id', $company_id);
})->count();
Offer
模型应包含product
关系,该关系返回Product
Offer
模型
答案 1 :(得分:0)
将各桌加在一起,然后找到每家公司的数量:
DB::table('Company')
->join('Product', 'Company.product_id', '=', 'Company.id')
->join('Offer', 'Product.offer_id', '=', 'Offer.id')
->select('Company.id', 'Company.name', DB::raw("count(*) AS num_offers"))
->groupBy('Company.id') // could also group by Company.name, but may not need it
->get();
答案 2 :(得分:0)
我在很多项目中遇到过同样的问题。你可以试试这个
$Companies = Company::where('id',$company_id)->whereHas('product', function($query) {
$query->with('offers');
})->get();
因此您将获得$ Companies作为数组。循环然后,您将获得所有公司的产品和提供$Companies[]->product[]->offers[]->count();
作为单个对象$Company->product->offer->count();