这是一个老问题,似乎还没有答案。作为参考,我将其留在这里供更多参考。您也可以查看教义文档
要删除记录,您需要(假设您在控制器中):
// get EntityManager
$em = $this->getDoctrine()->getManager();
// Get a reference to the entity ( will not generate a query )
$user = $em->getReference('ProjectBundle:User', $id);
// OR you can get the entity itself ( will generate a query )
// $user = $em->getRepository('ProjectBundle:User')->find($id);
// Remove it and flush
$em->remove($user);
$em->flush();
如果您只想删除实体而不首先检查它是否存在,则使用第一种获取引用的方法通常更好,因为它不会查询数据库,并且只会创建可用于删除实体的代理对象。
如果要首先确保此 ID 对应于有效的实体,则第二种方法更好,因为它会在尝试删除实体之前查询数据库以获取实体。