<?php namespace App\Controller; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use App\Repository\ProjectRepository; use App\Entity\ProjectEntity; use App\Form\Project\ProjectAddForm; class ProjectController extends AbstractExtendedController { /** * Projects list * * @param Request $request * @return Response */ public function projects(Request $request): Response { // Get repositories $entityManager = $this->getDoctrine()->getManager(); /** @var ProjectRepository $projectRepository */ $projectRepository = $entityManager->getRepository(ProjectEntity::class); // Project add form /** @var ProjectAddForm $projectAddForm */ $projectAddForm = $this->createNamedCustomForm('projectAdd', ProjectAddForm::class); $projectAddForm->handleRequest($request); if ($projectAddForm->isSubmitted() && $projectAddForm->isSubmitted()) { $errors = $projectAddForm->validate(); if (empty($errors)) { $project = $projectAddForm->getProject(); $entityManager->persist($project); $entityManager->flush(); return $this->ajaxFormAnswer([ 'refresh' => true, 'reset' => true ]); } return $this->ajaxFormAnswer([ 'error' => join('<br/>', $errors), 'code' => Response::HTTP_BAD_REQUEST ]); } // Get projects $projects = $projectRepository->findAll(); return $this->render("project/projects.html.twig", [ 'projects' => $projects, 'projectAddForm' => $projectAddForm ]); } }