src/Controller/Admin/IndexController.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Admin;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\Routing\Annotation\Route;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Component\HttpFoundation\Response;
  7. #[Route(name'admin_auth.')]
  8. class IndexController extends AbstractController 
  9. {
  10.     #[Route('/'name'admin'options: ['name'=>'首页'])]
  11.     public function index(): Response
  12.     {
  13.         return $this->render('admin/index/index.html.twig');
  14.     }
  15.     #[Route('/admin/dashboard'name'dashbord.index'options: ['name'=>'仪表盘'])]
  16.     public function dashboard(EntityManagerInterface $entityManager): Response
  17.     {
  18.         $now = new \DateTimeImmutable();
  19.         $usersCount $entityManager->getRepository('App\Entity\User')->createQueryBuilder('u')
  20.             ->select('count(u.id) as count')->getQuery()->getOneOrNullResult();
  21.         
  22.         $usersCountWeek $entityManager->getRepository('App\Entity\User')->createQueryBuilder('u')
  23.             ->select('count(u.id) as count')
  24.             ->andWhere('u.createdAt between :start and :end')->setParameter('start'$now->modify('-7 days')->format('Y-m-d'))
  25.             ->setParameter('end'$now)
  26.             ->getQuery()->getOneOrNullResult();
  27.         $usersCountMonth $entityManager->getRepository('App\Entity\User')->createQueryBuilder('u')
  28.             ->select('count(u.id) as count')
  29.             ->andWhere('u.createdAt between :start and :end')->setParameter('start'$now->modify('-1 month')->format('Y-m-d'))
  30.             ->setParameter('end'$now)
  31.             ->getQuery()->getOneOrNullResult();
  32.         
  33.         
  34.         $data = [
  35.             //会员
  36.             'userTotal' => $usersCount['count'] ?: 0,
  37.             'userTotalWeek' => $usersCountWeek['count'] ?: 0,
  38.             'userTotalMonth' => $usersCountMonth['count'] ?: 0,
  39.             
  40.         ];
  41.         return $this->render('admin/index/dashboard.html.twig'$data);
  42.     }
  43. }