Quantcast
Channel: Grafikart | Derniers Sujets du forum
Viewing all articles
Browse latest Browse all 1542

Problème avec mon formulaire - mapped false

$
0
0

Salut,

J'ai un problème avec mon serveur d'application. Le serveur est sous PHP, Symfony 3.
J'ai le formulaire suivant :

public function addAction($id, Request $request)
    {
        if (!$request->isMethod("POST")) {
            $response = new JsonResponse("POST only");
            $response->setStatusCode(Response::HTTP_BAD_REQUEST);
            return $response;
        }

        if ($id != 0) {
            $cr = $this->getDoctrine()->getRepository('AppBundle:Cr')->find($id);
        } else {
            $cr = new Cr();
        }

        $form = $this->createFormBuilder($cr, array('csrf_protection' => false))
            ->add('date', DateType::class, array(
                    'required' => true,
                    'widget' => 'single_text',
                )
            )
            ->add('description', TextareaType::class, array('required' => true))
            ->add('todo', TextareaType::class, array('required' => true))
            ->add('typeVisite', IntegerType::class, array('required' => true))
            ->add('project', IntegerType::class, array('mapped' => false))
            ->getForm();

        if ($request->isMethod('POST')) {
            $form->submit($request->request->get($form->getName()));

            if ($form->isValid()) {

                $em = $this->getDoctrine()->getManager();

                $em->persist($cr);

                $this->updateMobilisationHebdo($cr);
                $this->updateSuiviBenevoles($cr);
                if (isset($request->request->get($form->getName())['project']) && $cr->getTypevisite() != 0) {
                    $this->updateSuiviproject($cr, $request->request->get($form->getName())['project']);
                }

                $em->flush();

                return new JsonResponse('ok');
            } else {
                $errors = [];
                foreach ($form->getErrors(true, true) as $error) {
                    $errors[] = $error->getOrigin()->getName() . ' : ' . $error->getMessage();
                }

                $response = new JsonResponse($errors);
                $response->setStatusCode(Response::HTTP_NOT_ACCEPTABLE);
                return $response;
            }
        }
    }

Mon problème est que si je séléctionne un projet existant pour le champ "project", il ne prend pas en compte l'ID de celui ci, mais reste par défaut à 0.
J'aimerai savoir si quelqu'un pouvait m'aider à résoudre mon problème s'il vous plait :)

Merci


Viewing all articles
Browse latest Browse all 1542

Trending Articles