Comment récupérer l'identifiant lors de l'enregistrement d'un formulaire dans symfony 5 ?

J'ai deux entités Operation et Rubrique liées par une relation de ManyToOne

Je veux récupérer l'id d'une Opération lors de l'enregistrement

PS : le code fonctionne pour enregister

Form

public function buildForm(FormBuilderInterface $builder, array $options): void
    {
        $builder
            ->add('rubrique', EntityType::class, [
                'class' => Rubrique::class,
                'choice_label' => 'libelle',
            ])
            ->add('montant', IntegerType::class, [
                'label' => 'Montant',
            ])
        ;
    }

Controller

#[Route(
        '/new-operation',
        name: 'app_new_operation',
        methods: ['GET', 'POST'],
    )]
    public function newOperation(
        Request $request,
        ManagerRegistry $doctrine,
    ): Response {
        $em = $doctrine->getManager();

        $operation = new Operation;

        $form = $this->createForm(OperationFormType::class, $operation);

        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid())
        {
            $em->persist($operation);
            $em->flush();

            $this->addFlash('success', 'Operation created successfully!');

            return $this->redirectToRoute('app_home');
        }

        if ($form->isSubmitted()) {
            $this->addFlash('danger', 'Can you verify your submission? There are a few issues with this.');
        }

        return $this->render('home/new_operation.html.twig', [
            'form' => $form->createView(),
        ]);
    }

5 réponses


vous devrez laisser votre code pour que je puisse vous aider

je veux dire votre controller

Merci! pour avoir réagir
J'ai ajouté mon code

Bonjour,

logiquement lorsqu'une entité est enregistrée, elle est mise à jour avec l'id, donc après le flush, tu peux récupérer l'id en faisant un $operation->getId()