我想通过对控制器的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));
}
对此有何建议?
答案 0 :(得分:0)
通过dmnptr检查评论中的链接,它包含您需要的一切。
添加一件事,在您的代码中,您需要从
更改方法名称 editCtr()
至editCtrAction()
控制器类中的所有方法都是“动作”。希望这会有所帮助。