我正在渲染列uid,abc和表tx_abc_domain_model_abc的名称...
。但现在我只想渲染那些没有创建 realurl 路径的记录。
所以我想我需要为两个表tx_abc_domain_model_abc和tx_realurl_uniqalias提供一个 NOT WHERE INNER JOIN (https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Database/QueryBuilder/Index.html#join-innerjoin-rightjoin-and-leftjoin(?
table: tx_abc_domain_model_abc
column: uid
table: tx_realurl_uniqalias
column: tablename = tx_abc_domain_model_abc
column: value_id
动作控制器:
...
$statement = $queryBuilder
->select('tx_abc_domain_model_abc.uid', 'tx_abc_domain_model_abc.abc', 'tx_abc_domain_model_abc.name')
->from('tx_abc_domain_model_abc')
->join(
'tx_abc_domain_model_abc',
'tx_realurl_uniqalias'
$queryBuilder->expr()->eq('tx_realurl_uniqalias.value_id', $queryBuilder->quoteIdentifier('tx_abc_domain_model_abc.uid'))
)
->where(
$queryBuilder->expr()->eq('tx_realurl_uniqalias.tablename', $queryBuilder->createNamedParameter('tx_abc_domain_model_abc')),
)
->execute();
...
这是对的吗?但是如何不在哪里?
你可以用"->neq"做"NOT":
->neq($fieldName, $value)
所以用你的例子:
$queryBuilder->expr()->neq('tx_realurl_uniqalias.tablename', $queryBuilder->createNamedParameter('tx_abc_domain_model_abc'))
你可以在这里阅读它:https://docs.typo3.org/typo3cms/CoreApiReference/latest/ApiOverview/Database/ExpressionBuilder/Index.html#comparisons