typo3 extbase:m:n关系,获取关系计数的项目> 0

时间:2015-12-10 13:31:22

标签: typo3 extbase

我有2个extbase型号:产品和类别。可以将产品分配给多个类别,这是m:n关系。现在我需要找到至少有1篇文章的所有类别。这是否可以使用extbase查询?

我试过了:

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

但这根本不会返回任何类别。我可以使用extbase查询吗?或者,如果没有,我怎么能实现这一目标?

1 个答案:

答案 0 :(得分: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();