【发布时间】:2017-11-22 08:08:40
【问题描述】:
我正在为 TYPO3 CMS 8.7.8 开发一个扩展。我正在使用query->statement() 从单个表中选择所有字段,以及从另一个表中选择 1 个字段。我得到了一个带有正确模型的QueryResult,我希望向它们添加 1 个额外的字段。这可能吗?
【问题讨论】:
标签: typo3 datamapper typo3-8.x typo3-8.7.x
我正在为 TYPO3 CMS 8.7.8 开发一个扩展。我正在使用query->statement() 从单个表中选择所有字段,以及从另一个表中选择 1 个字段。我得到了一个带有正确模型的QueryResult,我希望向它们添加 1 个额外的字段。这可能吗?
【问题讨论】:
标签: typo3 datamapper typo3-8.x typo3-8.7.x
您可以使用 ->statement(...) 方法进行 SQL 查询,并且使用普通的 JOIN 命令
$result = $query->statement('SELECT * FROM tx_sjroffers_domain_model_offer
WHERE title LIKE ? AND organization IN ?', array('%climbing%', array(33,47)));
所以你可以在任何你想要的表上做 JOIN(也来自文档的代码)
LEFT JOIN tx_blogexample_person
ON tx_blogexample_post.author = tx_blogexample_person.uid
但是你最终会得到来自 mysql 查询的原始数据。如果要将其转换为对象,请使用Property Mapper
【讨论】:
您可以在您的 sql 中使用 JOIN statments,如下所示。
$query = $this->createQuery();
$sql = 'SELECT single.*,another.field_anme AS fields_name
FROM
tx_single_table_name single
JOIN
tx_another_table_name another
ON
single.fields = another.uid
WHERE
O.deleted = 0
AND O.hidden=0
AND O.uid=' . $orderId;
return $query->statement($sql)->execute();
【讨论】: