所以我从CRUD生成器中复制了基本的删除操作:
/**
* @Route("category/delete/{id}", name="category_delete")
* @Method("DELETE")
*/
public function deleteAction(Request $request, $id)
{
$repository = $this->getDoctrine()->getRepository('AppBundle:Category');
$category = $repository->find($id);
$form = $this->createDeleteForm($category);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->remove($category);
$em->flush();
}
return $this->redirectToRoute('category_index');
}
/**
*
* @param Category $category
*
* @return \Symfony\Component\Form\Form The form
*/
private function createDeleteForm(Category $category)
{
return $this->createFormBuilder()
->setAction($this->generateUrl('category_delete', array('id' => $category->getId())))
->setMethod('DELETE')
->getForm()
;
}
然而,我不确定如何实际使用该操作。 我想在两个位置进行删除,但我不确定正确的方法是什么:
1. 在编辑操作中删除 - 如何向表单构建器添加删除按钮?我必须在twig模板本身中执行吗? 2. 在索引中删除 - 我知道如何调用操作(例如,
<a href="{{ path('category_edit', {'id': cat.id}) }}" class="btn btn-default">Edit</a>
),但这对于删除操作无效。我已经尝试查看 Symfony演示应用程序,但我仍然不完全了解删除操作的工作方式 - 我找不到文档中的任何内容。
有人能提供有关删除操作在1和2方面如何工作的简要说明吗?
createDeleteForm
方法和我的完全一样吗? - DarkstaronecreateDeleteForm
函数类似。删除按钮属性取决于您如何调用动态引导模态框。我有一个不同的脚本来处理应用程序中所有ajax模态框,使用UIKIT。因此,按钮属性完全不同,并根据我的脚本进行了定制。请参考此链接或搜索动态引导模态框。 - Jeet