src/Controller/BuildingReportingController.php line 31
<?phpnamespace App\Controller;use App\Entity\Building;use App\Entity\BuildingReportingHistory;use App\Form\BuildingReportingFormType;use App\Services\Mails\Mails;use Doctrine\ORM\EntityManagerInterface;use Psr\Log\LoggerInterface;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;use Symfony\Component\Routing\Generator\UrlGeneratorInterface;class BuildingReportingController extends AbstractController{private UrlGeneratorInterface $urlGenerator;public function __construct(UrlGeneratorInterface $urlGenerator){$this->urlGenerator = $urlGenerator;}#[Route(path: ["fr" => "/building/reporting/{id}","en" => "/en/building/reporting/{id}",], name: 'building_reporting')]public function add(Building $building, Request $request, EntityManagerInterface $entityManager, Mails $mails, LoggerInterface $logger): Response {$buildingReporting = new BuildingReportingHistory();$form = $this->createForm(BuildingReportingFormType::class, $buildingReporting);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {try {$buildingReporting->setBuilding($building);$buildingReporting->setUser($this->getUser());$buildingReporting->setCity($building->getCityEntity());$buildingReporting->setCountry($building->getCityEntity()->getCountry());$buildingReporting->setNumberId($building->getNumberId());$buildingReporting->setPostalCode($building->getPostalCode());$buildingReporting->setStreet($building->getStreet());$buildingReporting->setNumberStreet($building->getStreetNumber());$buildingReporting->setCreatedAt(new \DateTimeImmutable('now', new \DateTimeZone('Europe/Paris')));$entityManager->persist($buildingReporting);$entityManager->flush();$formData = $form->getData();$urlBuilding = $this->urlGenerator->generate('detail_building',['id' => $buildingReporting->getBuilding()->getId()], UrlGeneratorInterface::ABSOLUTE_URL);$image = !empty($docs) ? end($docs)->getImageFile() : null;$email = $mails->createEmail('mails/building_report/signal.html.twig', ['type' => $formData->getType(),'number' => $formData->getNumber(),'details' => $formData->getDetail(),'urlBuilding' => $urlBuilding,'imageUrl' => $image,])->to('geraldlegoff@appyness.fr')->cc('contact@roomlers.com', 'julie@roomlers.com')->subject('Un bien a été signalé !');$mails->send($email);$this->addFlash('success', 'Votre signalement a été envoyé avec succès.');} catch (\Exception $e) {$this->addFlash('error', 'Erreur lors de l\'envoi: ' . $e->getMessage());}return $this->redirectToRoute('detail_building', ['id' => $building->getId()]);}$currentUser = $this->getUser();return $this->render('building_reporting/index.html.twig', ['form' => $form->createView(),'building' => $building,'user' => $currentUser,]);}}