В Symfony4 функция обновления не работает, после выборки значений из базы данных - PullRequest
0 голосов
/ 06 февраля 2020

Я новичок в Symfony. Я сделал форму со вставкой, удалением, просмотром, обновлением. На странице просмотра я добавил кнопку редактирования, которая используется для обновления значений. Когда я отправляю форму после изменения, значения в значениях формы не будут обновляться в выходных данных. Пожалуйста, поделитесь своими мыслями.

Спасибо ...

здесь я прикрепил код моего контроллера

/** 
* @Route("/update/{id}", name="update") 
*/ 
//edit function
public function edit($id,Request $request,Ramsurath $ramsurath) :Response
{
    $form = $this->createForm(RamsurathType::class, $ramsurath);
    $form->handleRequest($request);
    if ($form->isSubmitted() && $form->isValid()) 
        {
          $this->getDoctrine()->getManager()->flush();
          return $this->redirectToRoute('index');
        }
    return $this->render('ramsurath/update.html.twig',        
    ['ramsurath'=>$ramsurath,'form' => $form->createView()]);
}

1 Ответ

2 голосов
/ 06 февраля 2020

См. Symfony Документация для Обработка форм .

Вы пропустили вызов $form->getData() перед сбросом:

/** 
* @Route("/update/{id}", name="update") 
*/ 
//edit function
public function edit($id,Request $request,Ramsurath $ramsurath) :Response
{
    $form = $this->createForm(RamsurathType::class, $ramsurath);
    $form->handleRequest($request);
    if ($form->isSubmitted() && $form->isValid()) 
        {
          $ramsurath = $form->getData(); // this is the line you are missing
          $this->getDoctrine()->getManager()->flush();
          return $this->redirectToRoute('index');
        }
    return $this->render('ramsurath/update.html.twig',        
   ['ramsurath'=>$ramsurath,'form' => $form->createView(),
    ]);
    }
...