多对多的 Symfony2 DQL 更新查询
Posted
技术标签:
【中文标题】多对多的 Symfony2 DQL 更新查询【英文标题】:Symfony2 DQL Update query with Many to Many 【发布时间】:2017-10-22 05:41:05 【问题描述】:我有三个表“category”、“product”和“product_category”。 前两个表是从两个实体类别和产品创建的。 第三个表“product_category”由框架教义控制台命令自动生成。
现在我可以从下面的查询中获取(获取)产品关系数据(基于类别 ID),这很好。
$this->createQueryBuilder('p')
->leftJoin('p.category', 'c')
->select('p')
->where('c.id = :category_id')
->setParameter('category_id', 2)
->getQuery()->getSQL();
但是如何使用多对多关系来更新数据? 我尝试了几个查询,但它不起作用!!! ( 我想将所有产品状态更新为非活动 (2),其类别状态为 (2 = 非活动)。
【问题讨论】:
【参考方案1】:在对有子表的表进行查询时。您也可以只获取父项,然后教义会自动处理子对象。如果Product
实体中有getCategory
,它将自动解析类别。
您正在寻找的可能是级联事件。其中Doctrine 2 ManyToMany cascade中解释了
【讨论】:
以上是关于多对多的 Symfony2 DQL 更新查询的主要内容,如果未能解决你的问题,请参考以下文章