Bonjour à tous,

Je voudrais que le champ 'service' qui est un select soit prérempli par l'id du service qui est récupéré par le controller ci-bas...
J'ai essayé d'injecter la variable directement dans les paramètres du "create form" , rien n'y fait...

D'autre part, mon formulaire n'envoie rien en bdd alors que la requête revient comme étant correcte...

Merci d'avance pour votre expertise

MailContactController.php :


namespace App\Controller;

use App\Form\ContactFormType;
use App\Repository\ServicesRepository;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Routing\Annotation\Route;

#[Route('/contact-par-mail', name: 'app_contact_par_mail_')]
class MailContactController extends AbstractController
{
    #[Route('/envoyer-mail/{id}/{slug}', name: 'envoyer_mail')]
    public function envoyerMail($slug, MailerInterface $mailer, Request $request, ServicesRepository $servicesRepository, $id): Response
    {
        //Si l'on se trouve sur la page ou fiche d'un service
        $service_a_contacter = $servicesRepository->find($id);
        $idService = $service_a_contacter->getId();

        //Recherche des adresses mails du service
        $mail1 = $service_a_contacter->getMailService1();
        $placeholder = "Indiquez ici ce qui vous amène à nous contacter sans oublier vos coordonnées complète et les données du véhicule concerné.";
        $slug = $service_a_contacter->getSlug();

        $form = $this->createForm(ContactFormType::class);
        $contact = $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {  

            $email = (new TemplatedEmail())
                ->from($contact->get('email')->getData())
                ->to($mail1)
                ->subject($contact->get('subject')->getData())
                ->htmlTemplate('emails/contact_service.html.twig')
                ->context([
                    'service' => $idService,
                    'mail' => $mail1,
                    'message' => $contact->get('message')->getData()
                ]);
                dd($email);
            $mailer->send($email);

            $this->addFlash('success', 'Le mail a bien été envoyé au service demandé, nous vous répondrons dans les meilleurs délais.');
            return $this->redirectToRoute('app_index', [
                'slug' => $slug
            ]);
        }

        return $this->render('_partials/_modale-contact.html.twig', [
            'mail1' => $mail1,
            'service' => $service_a_contacter,
            'idService' => $idService,
            'form' => $form->createView()
        ]);
    }
}

ContactFormType.php


namespace App\Form;

use App\Entity\Services;
use FOS\CKEditorBundle\Form\Type\CKEditorType;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\NotNull;

class ContactFormType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options): void
    {
        $builder
            ->add('service', EntityType::class, [
                'class' => Services::class,
                'label' => 'Service contacté : ',
            ])
            ->add('subject', TextType::class, [
                'label' => "Objet : ",
                'constraints' => new NotBlank(),
                'attr' => [
                    'class' => 'form-control',
                    'placeholder' => 'Décrivez-ici votre demande'
                ],

            ])
            ->add('email', EmailType::class, [
                'label' => 'Votre e-mail :',
                'constraints' => new NotBlank(),
                'attr' => ['class' => 'form-control', 'placeholder' => 'Votre email est obligatoire !'],

            ])
            ->add('message', CKEditorType::class, [
                'label' => 'Votre message + coordonnées de contact + données du véhicule concerné : ',
                'constraints' => new NotBlank(),
                'attr' => ['class' => 'form-control'],
            ]);
    }

    public function configureOptions(OptionsResolver $resolver): void
    {
        $resolver->setDefaults([

        ]);
    }
}

Aucune réponse