【问题标题】:typo3 extbase: m:n relationship, get items with relation count > 0Typ3 extbase:m:n 关系,获取关系计数 > 0 的项目
【发布时间】:2015-12-10 13:31:22
【问题描述】:

我有 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 查询来做到这一点吗?或者,如果没有,我还能如何实现这一目标?

【问题讨论】:

    标签: typo3 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();
    

    【讨论】:

    • 非常感谢。有没有办法将此结果转换为正常的 extbase 查询返回的结果?实体或任何它在typo3中称为...?
    猜你喜欢
    • 2011-09-07
    • 2020-06-22
    • 1970-01-01
    • 1970-01-01
    • 2016-03-09
    • 2017-05-01
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多