<?php namespace App\Controller; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use App\Entity\ActorEntity; use App\Entity\TaskEntity; use App\Repository\ActorRepository; use App\Repository\TaskRepository; use App\Form\Actors\TaskAddForm; class TaskController extends AbstractExtendedController { /** * Page for task list * * @param Request $request * @return Response */ public function tasks(Request $request): Response { // Get repositories $entityManager = $this->getDoctrine()->getManager(); /** @var ActorRepository $actorRepository */ $actorRepository = $entityManager->getRepository(ActorEntity::class); /** @var TaskRepository $taskRepository */ $taskRepository = $entityManager->getRepository(TaskEntity::class); // Get actors $actors = $actorRepository->findAll(); // Task add form /** @var TaskAddForm $taskAddForm */ $taskAddForm = $this->createNamedCustomForm('taskAdd', TaskAddForm::class, [ 'actors' => $actors, ]); $taskAddForm->handleRequest($request); if ($taskAddForm->isSubmitted() && $taskAddForm->isValid()) { $errors = $taskAddForm->validate(); if (empty($errors)) { $task = $taskAddForm->getTask(); $entityManager->persist($task); $entityManager->flush(); return $this->ajaxFormAnswer([ 'refresh' => true, 'reset' => true, ]); } else { return $this->ajaxFormAnswer([ 'error' => join('<br/>', $errors), 'code' => Response::HTTP_BAD_REQUEST, ]); } } // Get tasks $tasks = $taskRepository->findAll(); return $this->render('task/tasks.html.twig', [ 'taskAddForm' => $taskAddForm, 'tasks' => $tasks, ]); } }