File: /var/www/vhost/disk-apps/demo.sports-crowd.com/app/Http/Controllers/Exports/ReportCreditCoins.php
<?php
namespace App\Http\Controllers\Exports;
use DB;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithStrictNullComparison;
class ReportCreditCoins implements FromCollection, WithHeadings, WithEvents, WithStrictNullComparison
{
// set the headings
public function headings(): array
{
return [
'Apellido', 'Nombres', 'Correo', 'Total Monedas', 'Deuda Monedas', 'Crédito Monedas', 'Activo'
];
}
// freeze the first row with headings
public function registerEvents(): array
{
return [];
}
public function collection()
{
$obj = $obj = DB::table('users')
->select('users.first_name', 'users.last_name', 'users.email', 'user_coins.all_coins AS all_coins', 'user_coins.debt_coins', 'user_coins.credit_coins', DB::raw('IF(user_coins.locked = 1, "NO", "SI") AS locked'))
->join('user_coins', 'user_coins.user_id', '=', 'users.id')
->whereIn('rol_id', [4])
->orderBy('user_coins.created_at', 'desc')
->get();
$data = [];
foreach ($obj as $user) {
$data[] = array(
$user->last_name, $user->first_name, $user->email, $user->all_coins, $user->debt_coins, $user->credit_coins, $user->locked,
);
}
return collect($data);
}
}