许多解决方案:
- 只有一个控制器并向他发送带有要编辑的元素 ID 的隐藏输入;
- 单击编辑链接时,使用 javascript 设置相应的操作属性。
如果我们使用第一种方法,我们所做的是使用 ajax 或表单检索当前项目,假设您的编辑链接如下所示:
<a href="{{ path("url", {id: myid}) }}" data-id="{{ myid }}">Edit</a>
在 javascript 中,我们这样做:
$('.editItem').click(function(e) {
// We avoid the default behaviour (ie following the link)
e.preventDefault();
// We load the form with ajax
$('.show').load('', {id: $(this).attr('data-id')});
});
然后在您的控制器中(显示当前视图的控制器):
if($request->isXmlHttpRequest()) {
$myid = $request->query->get('id'); // Could be $request->request
$entity = $em->getRepository('...')->getOneById($myid);
return $this->render('form.html.twig', array('entity' => $entity));
}