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


Florent Regis Youde
Auteur
Réponse acceptée
[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,
    ]);
}

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.