TYPO3 - 如果记录

时间:2017-11-20 21:50:05

标签: typo3 typo3-extensions typo3-8.x typo3-8.7.x

我正在渲染列uid,abc和表名tx_abc_domain_model_abc ...

...但是现在我只想渲染那些没有创建过realurl路径的记录。

所以我想我需要一个NOT WHERE INNER JOIN(https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Database/QueryBuilder/Index.html#join-innerjoin-rightjoin-and-leftjoin)来表示两个表tx_abc_domain_model_abc和tx_realurl_uniqalias?

table: tx_abc_domain_model_abc
column: uid

table: tx_realurl_uniqalias
column: tablename = tx_abc_domain_model_abc
column: value_id

的ActionController:

...
$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();
...

这是对的吗?但是那里怎么办?

1 个答案:

答案 0 :(得分:0)

您可以使用“-> neq”执行“ NOT”操作:

->neq($fieldName, $value) 

以您的示例为例:

$queryBuilder->expr()->eq('tx_realurl_uniqalias.tablename', $queryBuilder->createNamedParameter('tx_abc_domain_model_abc'))

您可以在此处阅读:https://docs.typo3.org/typo3cms/CoreApiReference/latest/ApiOverview/Database/ExpressionBuilder/Index.html#comparisons