Files
shahrzadzandi09/app/Http/Controllers/admin/DashboardController.php
T
2026-08-22 07:54:26 +03:30

89 lines
2.2 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Airport;
use App\Models\Comment;
use App\Models\Favorite;
use App\Models\Flight;
use App\Models\Tour;
use App\Models\User;
use Maatwebsite\Excel\Facades\Excel;
use App\Exports\VisitsExport;
use Illuminate\Support\Carbon;
use Hekmatinasser\Verta\Verta;
class DashboardController extends Controller
{
public function index()
{
$usersCount = User::count();
$toursCount = Tour::count();
$flightsCount = Flight::count();
$airportsCount = Airport::count();
$commentsCount = Comment::count();
$favoritesCount = Favorite::count();
/*
|--------------------------------------------------------------------------
| داده‌های نمودار
|--------------------------------------------------------------------------
*/
$chartLabels = [];
$chartValues = [];
for ($i = 9; $i >= 0; $i--) {
$date = Carbon::now()
->subDays($i);
$chartLabels[] = Verta::instance($date)
->format('Y/m/d');
// فعلاً برای تست
$chartValues[] = rand(5, 100);
}
return view('admin.dashboard', compact(
'usersCount',
'toursCount',
'flightsCount',
'airportsCount',
'commentsCount',
'favoritesCount',
'chartLabels',
'chartValues'
));
}
public function exportExcel()
{
$users = User::select(
'id',
'first_name',
'last_name',
'email',
'mobile',
'created_at'
)->get();
$rows = $users->map(fn ($user) => [
$user->id,
$user->first_name,
$user->last_name,
$user->email,
$user->mobile,
$user->created_at
? Verta::instance($user->created_at)->format('Y/m/d')
: '-',
])->toArray();
return Excel::download(
new VisitsExport($rows),
'users-report-' . now()->format('Y-m-d') . '.xlsx'
);
}
}