使用原始 SQL 将单个字段添加到模型
Add a single field to model using raw SQL
我正在为 TYPO3 CMS 8.7.8 开发一个扩展。我正在使用 query->statement()
到 select 来自单个 table 的所有字段,加上来自另一个 table 的 1 个字段。我得到了一个 QueryResult
和正确的模型,我想向它们添加 1 个额外的字段。这可能吗?
您可以使用 ->statement(...)
方法执行 SQL 查询,并在其中使用正常的 JOIN
命令
$result = $query->statement('SELECT * FROM tx_sjroffers_domain_model_offer
WHERE title LIKE ? AND organization IN ?', array('%climbing%', array(33,47)));
所以你可以在任何你想要的table上做 JOIN(也来自文档的代码)
LEFT JOIN tx_blogexample_person
ON tx_blogexample_post.author = tx_blogexample_person.uid
但是您最终会得到来自 mysql 查询的原始数据。如果要将其转换为对象,请使用 Property Mapper
您可以在 sql statments
中使用 JOIN
,如下所示。
$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();
我正在为 TYPO3 CMS 8.7.8 开发一个扩展。我正在使用 query->statement()
到 select 来自单个 table 的所有字段,加上来自另一个 table 的 1 个字段。我得到了一个 QueryResult
和正确的模型,我想向它们添加 1 个额外的字段。这可能吗?
您可以使用 ->statement(...)
方法执行 SQL 查询,并在其中使用正常的 JOIN
命令
$result = $query->statement('SELECT * FROM tx_sjroffers_domain_model_offer
WHERE title LIKE ? AND organization IN ?', array('%climbing%', array(33,47)));
所以你可以在任何你想要的table上做 JOIN(也来自文档的代码)
LEFT JOIN tx_blogexample_person
ON tx_blogexample_post.author = tx_blogexample_person.uid
但是您最终会得到来自 mysql 查询的原始数据。如果要将其转换为对象,请使用 Property Mapper
您可以在 sql statments
中使用 JOIN
,如下所示。
$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();