<?php
namespace App\Controller\Admin;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Response;
#[Route(name: 'admin_auth.')]
class IndexController extends AbstractController
{
#[Route('/', name: 'admin', options: ['name'=>'首页'])]
public function index(): Response
{
return $this->render('admin/index/index.html.twig');
}
#[Route('/admin/dashboard', name: 'dashbord.index', options: ['name'=>'仪表盘'])]
public function dashboard(EntityManagerInterface $entityManager): Response
{
$now = new \DateTimeImmutable();
$usersCount = $entityManager->getRepository('App\Entity\User')->createQueryBuilder('u')
->select('count(u.id) as count')->getQuery()->getOneOrNullResult();
$usersCountWeek = $entityManager->getRepository('App\Entity\User')->createQueryBuilder('u')
->select('count(u.id) as count')
->andWhere('u.createdAt between :start and :end')->setParameter('start', $now->modify('-7 days')->format('Y-m-d'))
->setParameter('end', $now)
->getQuery()->getOneOrNullResult();
$usersCountMonth = $entityManager->getRepository('App\Entity\User')->createQueryBuilder('u')
->select('count(u.id) as count')
->andWhere('u.createdAt between :start and :end')->setParameter('start', $now->modify('-1 month')->format('Y-m-d'))
->setParameter('end', $now)
->getQuery()->getOneOrNullResult();
$data = [
//会员
'userTotal' => $usersCount['count'] ?: 0,
'userTotalWeek' => $usersCountWeek['count'] ?: 0,
'userTotalMonth' => $usersCountMonth['count'] ?: 0,
];
return $this->render('admin/index/dashboard.html.twig', $data);
}
}