src/Controller/Applicant/DefaultController.php line 36

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Applicant;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use App\Entity\UserInfo;
  9. use App\Form\UserInfoType;
  10. use App\Repository\BatchRepository;
  11. /**
  12.  *
  13.  * @author "wendell.zheng <wxzheng@ustc.edu.cn>"
  14.  */
  15. class DefaultController extends AbstractController
  16. {
  17.     /**
  18.      *
  19.      * @Route("/applicant", name="applicant")
  20.      */
  21.     public function index(BatchRepository $repository): Response
  22.     {
  23.         $batches $repository->list();
  24.         return $this->render('applicant/index.html.twig', [
  25.             'batches' => $batches
  26.         ]);
  27.     }
  28.     /**
  29.      *
  30.      * @Route("/applicant/user/info", name="applicant_user_info")
  31.      */
  32.     public function info(Request $requestEntityManagerInterface $em): Response
  33.     {
  34.         $user $this->getUser();
  35.         $userInfo $user->getUserInfo();
  36.         if (! $userInfo) {
  37.             $userInfo = new UserInfo();
  38.         }
  39.         $form $this->createForm(UserInfoType::class, $userInfo);
  40.         $form->handleRequest($request);
  41.         if ($form->isSubmitted() && $form->isValid()) {
  42.             $em->persist($userInfo);
  43.             $user->setUserInfo($userInfo);
  44.             $user->setName($userInfo->getName());
  45.             $em->flush();
  46.             $this->addFlash('notice''操作成功');
  47.             return $this->redirectToRoute('applicant');
  48.         }
  49.         return $this->render('applicant/user_info.html.twig', [
  50.             'title' => '个人信息',
  51.             'form' => $form->createView()
  52.         ]);
  53.     }
  54. }