Laravel计数>其他计数

时间:2019-02-21 23:19:21

标签: laravel

我有下一个问题:

我在mysql上有下表

ID | IDPAYMENT | CUSTOMER | PAYDATE     | STATUS    |  PENDINGAMOUNT | PAYTO DATE
1  |    1      |   JOHN   |  2018-12-15 |  PAYED    |    $0          | 2018-11-01
2  |    1      |   JOHN   |    NO/PAY   |  PENDING  |    $10         | 2018-11-15   
3  |    1      |   JOHN   |    NO/PAY   |  PENDING  |    $10         | 2018-12-01   
4  |    1      |   JOHN   |    NO/PAY   |  PENDING  |    $10         | 2018-12-15   
5  |    1      |   JOHN   |    NO/PAY   |  PENDING  |    $10         | 2019-01-01   
6  |    1      |   JOHN   |    NO/PAY   |  PENDING  |    $10         | 2018-01-15  
7  |    1      |   JOHN   |    NO/PAY   |  PENDING  |    $10         | 2018-02-01 

我想用PENDING计数状态并与ID的计数进行比较:

状态待定= 6

ID COUNT = 7

想法是求和状态为Pending的PENDINGAMOUNT的总和,日期为<到今天,以添加不付款的佣金...

2 个答案:

答案 0 :(得分:0)

对于:

  

求和状态为Pending,日期为<到今天的PENDINGAMOUNT ...

原始SQL:

SELECT COUNT(*) FROM table_name WHERE `status` = 'PENDING` AND `paydate` < CURDATE()

转换为laravel构建器:

$count = Model::where('status', 'PENDING')->whereDate('paydate', '<', Carbon::today())->count();

获取所有行的总数:

$totalCount = Model::count();

不确定是否要增加佣金,因为我们将需要更多的业务逻辑。

答案 1 :(得分:-2)

我不知道您的模型名称是什么,但是使用Laravel使用一个查询即可快速轻松地解决您想要的问题:

$models = \App\YourModelName::get();

然后从集合中获取计数:

$idCount = $models->count();
$statusPendingCount = $models->where('status', 'PENDING')->count();

在已经查询了模型的情况下,您可以通过集合获得其余的需求。