src/Controller/FrontendBundle/InfoController.php line 24

Open in your IDE?
  1. <?php
  2. namespace App\Controller\FrontendBundle;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\Routing\Annotation\Route;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\JsonResponse;
  7. use App\BackendBundle\Helper\UserHelper;
  8. use App\Entity\User;
  9. class InfoController extends AbstractController {
  10.     private UserHelper $userHelper;
  11.     public function __construct(UserHelper $userhelper) {
  12.         $this->userHelper $userhelper;
  13.     }
  14.     /**
  15.      * @return \Symfony\Component\HttpFoundation\Response
  16.      * @Route("/show_head_news_infos", name="head_infos_show") 
  17.      */
  18.     public function dataAction(Request $request) {
  19.         $this->newsCount 0;
  20.         /* @var $user User */
  21.         $user $this->getUser();
  22.         $data = array();
  23.         if (!$this->userHelper->isUserLoggedIn()) {
  24.             return new JsonResponse($data);
  25.         }
  26.         $this->countNewNewsMessages($user);
  27.         if (isset($this->newsCount) && $this->newsCount 9) {
  28.             $this->newsCount '9+';
  29.         }
  30.         $data['count'] = $this->newsCount;
  31.         return new JsonResponse($data);
  32.     }
  33.     private function countNewNewsMessages($user) {
  34.         $sqlText 'SELECT n FROM App\Entity\News n JOIN n.newsType nt
  35.                         WHERE n.receiverUser = :user and n.isNew = true and nt.id<>7';
  36.         $query $this->getDoctrine()->getManager()->createQuery($sqlText);
  37.         $query->setParameter('user'$user);
  38.         $result $query->getResult();
  39.         $resultCount count($result);
  40.         $this->newsCount $resultCount;
  41.     }
  42. }