Modification Entité Père dans le Controller

Par Florent Regis Youde, il y a 4 ans


Décrivez ici votre problème ou ce que vous cherchez à faire.

Entourez votre code en utilisant "```" pour bien le mettre en forme. (ne copiez pas trop de code"' $lotM = $lotRepository->findOneByLot($lot->getId()); $lotM->setSechage("1");'")

Ce que je veux

J'ai 2 entité Lot et Sechage relié par ManyToOne, l'id de Lot migre dans Sechage.
l'entité Lot contiet un champ 'sechage'. Depuis le controlleur Sechage, je veux modifier Lot en faisant setSechage("1"). Besoind'aide svp, je suis nouveau en Symfony

Ce que j'obtiens

Décrivez vos éventuelles erreurs ou ce que vous obtenez à la place de ce que vous attendez :(Call to a member function getId() on array

2 réponses

Rémi Alban, il y a 4 ans

Bonjour,

Cela serait bien que vous donniez tout votre code afin qu'on puisse bien répondre à vos attentes.
Avec les informations que j'ai, si je comprend bien, vous avez un object $lot et un objet $sechage :

public function index(ManagerRegistry $doctrine) { // ... $manager = $doctrine->getDatabase(); $lot->setSechage($sechage); $manager->persist($lot); $manager->flush(); // ... }

J'espère avoir répondu à votre question.

Florent Regis Youde, il y a 4 ans

[Route('/new', name: 'sechage_new', methods: ['GET', 'POST'])]

public function new(Request $request, EntityManagerInterface $entityManager, LotRepository $lotRepository): Response {
    $sechage = new Sechage();

    $form = $this->createForm(SechageType::class, $sechage);
    $form->handleRequest($request);

    if ($form->isSubmitted() && $form->isValid()) {
        $lot = $lotRepository->findBy(['deletedAt' => NULL, "sechage" => 0,]);
        $lotM = $lotRepository->findOneByLot($lot->getId());
        $lotM->setEtat("1");
        $entityManager->persist($sechage);
        $entityManager->flush();

        return $this->redirectToRoute('sechage_index', [], Response::HTTP_SEE_OTHER);
    }

    return $this->renderForm('sechage/new.html.twig', [
                'sechage' => $sechage,
                'form' => $form,
    ]);
}