Inspired by Jonathan Reinink's post about Calculating totals in Laravel using conditional aggregates I've created an elegant way to grab multiple totals in an efficient way.
Please see the post for details about what this package aims to solve.
composer require bensampo/laravel-count-totals
Given the following subscribers
table structure:
name | status |
---|---|
Adam Campbell | confirmed |
Taylor Otwell | confirmed |
Jonathan Reinink | bounced |
Adam Wathan | cancelled |
$totals = Subscriber::countTotals([
['status' => 'confirmed'],
['status' => 'cancelled'],
['name' => 'Jonathan Reinink'],
]);
$totals->confirmed // 2
$totals->cancelled // 1
$totals->jonathanReinink // 1
You may also use the DB
facade:
$totals = DB::table('subscribers')->countTotals([
['status' => 'confirmed'],
['status' => 'cancelled'],
['name' => 'Jonathan Reinink'],
]);