2017-07-31 99 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();