早上好,在symfony项目中,我需要通过表中的编辑按钮进行更新。此按钮将我带到一个输入页面,其中的值已输入的。但是,当我修改(此处示例为“Ref”)并进行验证时,数据库不会更新。
newmodif.html.twig:
 
<div class="refPrincipale">
                        Référence Principale :
                        <input id="1" class="champ input_uppercase input_color" maxlength="35" name="ref" value="{{ expedition.RefPrincipale }}">
                    </div>
            <td><a type="button" class="btn bouton add_button" href="{{ path('expedition_updatee', {'id': expedition.id}) }}" >Valider</a></td>
ExpeditionController.php中的函数更新:
public function updatee(Request $request, int $id) : Response
{
    $em = $this->getDoctrine()->getManager();
    $expedition = $em->getRepository(Expedition::class)->findOneBy(['id' => $id]);
        
    if (!$expedition) {
        throw $this->createNotFoundException(
            'No product found for id '.$id
        );
    }
    
    if (null !== $request->request->get("ref")) {
        $expedition->setRefPrincipale($request->request->get("ref"));
    }
    
    $em->persist($expedition);
    $em->flush();
    
    return $this->redirectToRoute('expedition_encours');
    
}
路线.yaml
expedition_updatee:
    path: /expedition/encours/{id}
    controller: App\Controller\ExpeditionController::updatee
Expedition.php:
public function getRefPrincipale(): ?string
    {
        return $this->ref_principale;
    }
    public function setRefPrincipale(string $ref_principale): self
    {
        $this->ref_principale = $ref_principale;
        return $this;
    }
如果我替换该行:
$expedition->setRefPrincipale($request->request->get("ref"));
签署人:
$expedition->setRefPrincipale("change data");
它可以工作,当我单击“验证”时,数据库会更新,但这不是我想要的,因为它会因为代码而改变,而不是因为页面上修改的字段。