我有三个表“类别”,“产品”和“ 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 =无效)。
答案 0 :(得分:0)
对包含子项的表进行查询时。您也可以只获取父项,并且doctrine将自动处理子对象。如果getCategory
实体中有Product
,则会自动解析该类别。
您正在寻找的是事件的级联。其中的内容在Doctrine 2 ManyToMany cascade
中解释