2017-12-07 2 views
3

모든 판매자의 판매 된 품목을 계산하고 싶습니다. 이 코드를 변경하려고 :Laravel Sold Items Count

<?php $count = DB::table('purchases')->whereIn('seller_id', [4])->count(); echo $count; ?> 

내가 그것에서 다른 $ DB 명령을 추가 할 수 있습니까? 예를 들어이 대신 [4]처럼

{{$product->seller->id}} 

: 당신이 사용자 그룹에 대한 카운트를 얻고 싶다면

<?php $count = DB::table('purchases')->whereIn('seller_id', [{{$product->seller->id}}])->count(); echo $count; ?> 
+0

시도는 -> ([ID 'seller_id'=> $ 제품 -> 판매자 ->]) – timod

+0

아, 네 그게 전부는 어디에! 많은 감사합니다 –

+0

위대한! 기꺼이 도와 드리겠습니다. – timod

답변

0

, 당신은 판매자 ID의 배열을 특징으로 사용할 수 있습니다.

그러나 각 판매자에 대한 카운트를 원한다면, 당신은 그래서 당신의 쿼리처럼 보일 수

->groupBy('seller_id') 

를 그룹화 사용한다 : 당신의 판매자에

:

$user_info = DB::table('purchases') 
      ->select('seller_id', DB::raw('count(*) as total')) 
      ->groupBy('seller_id') 
      ->get(); 
+1

필요없는 경우 원시 명세서를 사용하지 않겠습니다. –

+0

동의합니다. [가능한 경우 Eloquent 사용] (https://github.com/alexeymezenin/laravel-best-practices#prefer-to-use-eloquent-over-using-query-builder-and-raw-sql-queries-prefer -collections-over-arrays) –

3

이 시도 모델

public function purchases(){ 
    return $this->hasMany(Purchase::class) 
} 

다음

$seller = Seller::withCount('purchases')->find(4); 

echo $seller->purchases_count; 

또는

$purchases = Seller::find(4)->purchases; 

echo $purchases->count(); 
+1

'withCount' 솔루션을위한 Upvote. –