rater/src/Controller/SubjectController.php

55 lines
1.6 KiB
PHP

<?php
namespace App\Controller;
use App\Entity\Restaurant;
use App\Repository\SubjectRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class SubjectController extends AbstractController
{
#[Route('/')]
public function index(
Request $request,
EntityManagerInterface $em,
SubjectRepository $repo,
): Response {
$subject = new Restaurant();
$subject->setName("MyRestaurant");
$form = $this->createFormBuilder($subject)
->add('name', TextType::class)
->add('save', SubmitType::class)
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$subject->setCreatedBy($this->getUser());
$em->persist($subject);
$em->flush();
return $this->redirectToRoute('app_subject_index');
}
$subjects = $repo->findAll();
return $this->render('index/page.html.twig', [
'form' => $form,
'subjects' => $subjects,
]);
}
#[Route('/', 'subject_new', methods: ["POST"])]
public function save(): RedirectResponse
{
return $this->redirect('/');
}
}