首页 > 解决方案 > 在 Symfony4 更新功能不起作用,从数据库中获取值之后

问题描述

我是 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()]);
}

标签: mysqlsymfonytwigsymfony1symfony4

解决方案


参见处理表单的 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(),
    ]);
    }

推荐阅读