2017-07-31 41 views
0

我有Order表,其中用戶訂單將與其id一起存儲,並且還具有0/1的狀態以顯示該訂單是由用戶支付還是由用戶支付。從laravel的另一個表獲取用戶信息

現在我想在他們的個人資料中顯示,例如他們有10個訂單和3個付費。

我可以得到的總訂單數量是10,但我有問題獲得已支付的3個訂單的數量。

目前我有這樣的:

$ordersd = DB::table('orders')->where('status', Auth::user()->username)->pluck('status')->count(); 

但它不是我所需要的,因爲我需要指定count我只訂單狀態1屬於登錄的用戶。

我該怎麼做?

謝謝。

回答

2

你爲什麼要比較statusAuth::user()->username裏面的條件?

它有什麼意義嗎?

$ordersd = DB::table('orders')->where('status', Auth::user()->username) 
       ->pluck('status')->count(); 

因此,將其更改爲

$ordersd = DB::table('orders') 
      ->where('user_id',Auth::user()->id) 
      ->where('status', 1) 
      ->count(); 

希望你能理解。

+0

我明白,兄弟,但它不工作爲什麼?因爲它會爲所有用戶返回狀態1!我只想得到那些屬於登錄用戶的列。 –

+0

我需要說只爲已記錄的用戶返回此狀態,而不是所有用戶。 –

+0

@RobertNicjoo你如何跟蹤哪些訂單屬於哪些用戶?訂單表中是否有用戶標識或名稱字段? –

0

你應該能夠做到這一點,以獲得支付訂單數:

$ordersd = DB::table('orders') 
      ->where([ [ 'status', '=', 1 ], 
         [ 'user_id', '=', Auth::user()->id] 
        ]) 
      ->count(); 

拿到訂單總數:

$ordersd = DB::table('orders') 
      ->where('user_id', Auth::user()->id) 
      ->count(); 
相關問題