Typo3 Extbase Как мне получить все объекты с отношением = 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(...), но это тоже не работает.

Я хочу получить все объекты из таблицы A, которые на A.B_I_D.von больше, чем сегодня. Таблица B (= A.B_I_D) является соотношением n: 1 (A=n:B=1). Как я могу получить объект от A более одного раза? И можно ли использовать это в Fluid?

Я использую Typo3 6.2


person Burner    schedule 29.03.2015    source источник
comment
Какую ошибку вы получаете с $query->statement(...)? Я думаю, так должно работать   -  person Jay Dinse    schedule 30.03.2015


Ответы (1)


хорошо, прежде всего, запросы extbase всегда будут давать вам полные объекты в результате. вот почему вам нужно использовать statement для достижения своей цели. Второй трюк, чтобы получить желаемый результат, заключается в том, что вам нужно настроить получение результата в виде массива. Это необходимо, потому что extbase пытается сопоставить ваш оператор с объектом модели, связанной с репозиторием.

вы можете изменить тип возвращаемых данных с помощью setReturnRawQueryResult: вы можете узнать больше об этом здесь http://docs.typo3.org/typo3cms/ExtbaseFluidBook/6-Persistence/3-implement-individual-database-queries.html

person Fixus    schedule 30.03.2015