Symfony2,Doctrine2,更新实体

时间:2014-09-05 17:43:45

标签: php jquery ajax symfony

我想通过对控制器的ajax调用将实体更新到数据库中。但是,我只知道如何使用Symfony的表单更新实体。目前我有一个将通过jQuery方法附加的表单并通过ajax提交但是在控制器中无法做什么。

的Ajax:

$("#editctrno").on("submit", function(event) {
     event.preventDefault();

     $.ajax({
         url: "{{ path('containers_edit') }}",
         type: "POST",
         data: {'ctrno' : $("#ctrno").val(),
                'refno' : $("#refno").val()},
         dataType: "json",
         success: function(data) {
             console.log(data[0].ctrno);
         }
   });
});

现在在我的控制器上:

/**
 * @Route("/edit/", name="containers_edit", defaults={"_format" = "json"})
 */
public function editCtr(Request $request) {
    $ctrno = $request->get('ctrno');
    $refno =  $request->get('refno');

    $em = $this->getDoctrine()->getManager()->getRepository('Bundle:Ref');

    // I want to access in the database to find the 'refno' and update the 'ctrno', 
    // something like:
    // $entity = $em->findRefno($refno);
    // $entity->setCtrno($ctrno);
    // $em->flush();

    return new Response(json_encode($entity));
}

对此有何建议?

1 个答案:

答案 0 :(得分:0)

通过dmnptr检查评论中的链接,它包含您需要的一切。

添加一件事,在您的代码中,您需要从

更改方法名称

editCtr()editCtrAction()

控制器类中的所有方法都是“动作”。希望这会有所帮助。