Typo3 Extbase 如何获得关系 = x 的所有对象?

Typo3 Extbase How can I get all Objects with a relation = x?

我想在我的项目中使用 Extbase。但是我没有让这个查询起作用:

SELECT
    tx_domain_model_A.*,
    tx_domain_model_B.*
FROM
    tx_domain_model_A LEFT JOIN tx_domain_model_B ON (tx_domain_model_B.uid IN (tx_domain_model_A.b_I_D))
WHERE
    tx_domain_model_B.von >= ?
ORDER BY tx_domain_model_B.von

结果应该是这样的:

A.uid   A.b_I_D B.uid   B.von
1       5,8,3   5       abc
1       5,8,3   8       def
1       5,8,3   3       ghi
2       1,2     1       123
2       1,2     2       456
3       1       1       123

我使用:

$query = $this->createQuery();
$query->matching($query->greaterThanOrEqual('bID.von',date('U')));

但是,所有子对象都是空的。我认为这来自: http://fossies.org/dox/typo3_src-6.2.9/Typo3DbQueryParser_8php_source.html

function addUnionStatement ...
...

    // TODO check if there is another solution for this
    785         $sql['keywords']['distinct'] = 'DISTINCT';

所以我用 $query->statement(...) 来做,但这也行不通。

我想从 Table A 中获取比今天大 A.B_I_D.von 的所有对象。 Table B (= A.B_I_D) 是一个 n:1 关系 (A=n:B=1)。如何多次从 A 获取对象?可以在 Fluid 中使用吗?

我用的是 Typo3 6.2

好的,首先,extbase 查询总是会为您提供完整的对象。这就是为什么您需要使用 statement 来实现您的目标。获得所需结果的第二个技巧是您需要设置为以数组形式接收结果。它是必需的,因为 extbase 正在尝试将您的语句映射到与存储库相关的模型对象

您可以使用 setReturnRawQueryResult 更改 return 数据的类型:您可以在此处阅读更多相关信息 http://docs.typo3.org/typo3cms/ExtbaseFluidBook/6-Persistence/3-implement-individual-database-queries.html