use*_*149 1 dql doctrine-query symfony doctrine-orm
我需要删除image_id = x适用的所有行
DELETE FROM `ImageVoters` WHERE image_id =1
Run Code Online (Sandbox Code Playgroud)
如何使用DQL执行此操作?
由于我试图一次删除几行,remove()函数将无法正常工作
EntityManager#remove() expects parameter 1 to be an entity object, array given.
$em = $this->getDoctrine()->getManager();
$query = $em->createQuery('SELECT u FROM GabrielUploadBundle:ImageVoters u WHERE u.image_id = 1');
$db_imageactions = $query->getResult();
$em->remove($db_imageactions);
$em->flush();
Run Code Online (Sandbox Code Playgroud)
这是有效的代码
$qb = $em->createQueryBuilder();
$qb->delete('GabrielUploadBundle:ImageVoters', 'v')
->where($qb->expr()->eq('v.image_id', ':imageId'))
->setParameter('imageId', $current_imageId);
$qb->getQuery()->execute();
Run Code Online (Sandbox Code Playgroud)
您可以创建ORM queryBuilder,以使用内部orm方法创建干净/安全的查询对象
$qb->delete('My\Image\Namespace\ImageVoters', 'ivoter')
->where($qb->expr()->eq('ivoter.image_id', ':imageId')
->setParameter('imageId', 1);
$qb->getQuery()->execute();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
128 次 |
| 最近记录: |