具有多对多的Symfony2 DQL更新查询

时间:2017-10-22 05:41:05

标签: doctrine-orm dql symfony-2.8 doctrine-query

我有三个表“类别”,“产品”和“ product_category ”。 前两个表是从两个实体Category和Product创建的。 第三个表“product_category”由框架doctrine控制台命令自动生成。

现在我可以从下面的查询中获取(获取)产品关系数据(基于类别ID),这很好。

$this->createQueryBuilder('p')
                ->leftJoin('p.category', 'c')
                ->select('p')
                ->where('c.id = :category_id')
                ->setParameter('category_id', 2)
                ->getQuery()->getSQL();

但我如何使用多对多关系更新数据? 我试过了几个查询,但它没有工作! (我想将所有产品状态更新为非活动状态(2),其类别状态为(2 =无效)。

1 个答案:

答案 0 :(得分:0)

对包含子项的表进行查询时。您也可以只获取父项,并且doctrine将自动处理子对象。如果getCategory实体中有Product,则会自动解析该类别。

您正在寻找的是事件的级联。其中的内容在Doctrine 2 ManyToMany cascade

中解释