2015-12-10 35 views
0

我有2个extbase模型:产品和类别。产品可以分配到多个类别,这是一个m:n关系。现在我需要找到至少有1篇文章的所有类别。这可能与一个extbase查询?typo3 extbase:m:n关系,获得关系计数> 0的项目

我尝试这样做:

$query = $this->createQuery(); 
$query->getQuerySettings()->setIgnoreEnableFields(true); 
$constraints[] = $query->greaterThan('products', 0); 
$query = $query->matching(
    $query->logicalAnd($constraints) 
); 
return $query->execute(); 

但这只是没有返回类别可言。我可以用extbase查询来做到这一点吗?或者,如果不是,我还能如何实现这一目标?

回答

1

据我所知,默认的QueryBuilder方法是不可能的。我知道的唯一方法是使用statement()方法并编写自己的SQL查询。它可能看起来像这样:

$sql = "select * from tx_myextension_domain_model_category cats 
      join tx_myextension_category_product_mm rel on cats.uid = rel.uid_local 
      join tx_myextension_domain_model_product p on rel.uid_foreign = p.uid 
      where p.deleted = 0 and cats.deleted = 0 group by cats.uid"; 

$query = $this->createQuery(); 
$query->statement()->execute(); 
return $query->execute(); 
+0

非常感谢。有没有办法将此结果转换为正常的extbase查询将返回的内容?实体或任何它被称为typo3 ...? – Chi