use*_*356 6 doctrine symfony doctrine-orm
我无法相信我似乎无法在任何地方找到它(不仅仅是强制整个SQL).文档谈论添加,搜索,更新和删除实体,但我只是看不到如何在纯SQL中执行此操作:
DELETE FROM table WHERE field = "test"
Run Code Online (Sandbox Code Playgroud)
我猜这只是添加和更新,所以我不能使用这个:
$product = new Product();
// etc.
$em = $this->getDoctrine()->getEntityManager();
$em->persist($product);
$em->flush();
Run Code Online (Sandbox Code Playgroud)
而且我认为'remove'选项也不会这样做:
$em->remove($product);
$em->flush();
Run Code Online (Sandbox Code Playgroud)
那么,有人能指出我正确的方向吗?
搜索实体并将其删除.
$em = $this->getDoctrine()->getEntityManager();
$repository = $em->getRepository('MyBundle:Product');
/** @var $product Product */
$product = $repository->findOneBy(array('field' => 'test'));
$em->remove($product);
$em->flush();
Run Code Online (Sandbox Code Playgroud)
您可以像这样创建DQL查询:
$query = $repository->createQuery('DELETE FROM entity e WHERE e.id = :id');
$query->setParameter('id', $id);
$query->execute();
Run Code Online (Sandbox Code Playgroud)