嗨,我要删除其他表中的产品。我想在控制器上执行此操作。
plotData$data
# values ind sdata
#1 1026674 lnorm 1050000
#2 1158492 lnorm 1100000
#3 1247944 lnorm 1230000
#4 1327616 lnorm 1300000
#5 1407939 lnorm 1450000
#6 1497825 lnorm 1459785
#7 1613479 lnorm 1654000
#8 1820639 lnorm 1888000
OR
$deleteQuery = $this->getDoctrine()
->getManager()
->createQueryBuilder('d')
->delete('TechnoSiteBundle:Sepet', 's')
->where('s.id = ' . $request->get('id'))->getQuery();
$deleted = $deleteQuery->getResult();
我要删除两个相关产品。使用Cascade时出现此错误;
$deleteQuery = $em->getRepository('TechnoSiteBundle:Ebatlar')->createQueryBuilder('table1')
->where('table1.id')
->leftJoin('table1.sepet', 'table2')
->andWhere('table2.ebat1')
->delete('table1.id = table2.productid')
->getQuery();
$deleted = $deleteQuery->getResult();
答案 0 :(得分:0)
用很少的有关实体的信息来做不清楚。
一些值得探索的东西:
如果您的两个product
行相关,则可能需要在某个地方使用cascade={"remove"}注释。
如果要手动删除两个实体,什么也不会阻止您运行两个查询。
一些有关Doctrine,Symfony和MVC最佳实践的注释(与您的问题没有直接关系,并且您没有要遵循这些准则,但这绝对是您的事情应该紧随其后,因为从长远来看,这将使您的生活更加轻松):
->where('s.id = ' . $request->get('id'))
之类的串联更好。用户可以伪造此$request->get('id')
来在where
子句中基本上插入他想要的任何内容。