src/Controller/Review/DefaultController.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Review;
  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\Repository\ScoreRepository;
  9. use App\Form\ScoreSearchType;
  10. use App\Form\ScoreType;
  11. use App\Entity\Score;
  12. /**
  13.  *
  14.  * @author "wendell.zheng <wxzheng@ustc.edu.cn>"
  15.  */
  16. class DefaultController extends AbstractController
  17. {
  18.     /**
  19.      *
  20.      * @Route("/review", name="review")
  21.      */
  22.     public function index(ScoreRepository $sr): Response
  23.     {
  24.         $form $this->createForm(ScoreSearchType::class);
  25.         $reviewer $this->getUser();
  26.         $scores $sr->listByReviewer($reviewer);
  27.         return $this->render('review/index.html.twig', [
  28.             'title' => '项目列表',
  29.             'entities' => $scores,
  30.             'form' => $form->createView()
  31.         ]);
  32.     }
  33.     /**
  34.      *
  35.      * @Route("/review/score/{id}", name="review_score", requirements={"id"="\d+"})
  36.      */
  37.     public function score(EntityManagerInterface $emScore $scoreRequest $request)
  38.     {
  39.         $form $this->createForm(ScoreType::class, $score);
  40.         $reviwer $this->getUser();
  41.         if ($score->getReviewer() !== $reviwer) {
  42.             throw new \Exception('非法操作');
  43.         }
  44.         $form->handleRequest($request);
  45.         if ($form->isSubmitted() && $form->isValid()) {
  46.             $score->setDone(true);
  47.             $em->persist($score);
  48.             $em->flush();
  49.             $this->addFlash('notice''操作成功');
  50.             return $this->redirectToRoute('review');
  51.         }
  52.         return $this->render('review/score.html.twig', [
  53.             'score' => $score,
  54.             'title' => '填写评审意见',
  55.             'form' => $form->createView()
  56.         ]);
  57.     }
  58. }