TYPO3 extbase数据库查询

标签 typo3 extbase typo3-6.2.x queryinterface

我有一个如下所示的 extbase 数据库查询。

$query = $this->createQuery();        
$result = $query->statement("Select * FROM table1 WHERE hidden = 0 AND deleted = 0 AND (".$PublicationYears.") AND logo != '' ORDER BY uid ASC LIMIT 0, ".$iLimit." ")->execute();             
return $result;


$PublicationYears = "ttra = '12' or ttra = '13' or ttra = '14'";

我按如下方式转换了这个查询,

$query = $this->createQuery();

$query->getQuerySettings()->setRespectStoragePage(FALSE);

$query->matching( $query->logicalAnd(
       $query->equals('deleted', 0),
       $query->equals('hidden', 0)
    ));

$query->matching($query->logicalAnd($PublicationYears));

$query->matching($query->logicalNot(
     $query->equals('logo', '')
 ));

$query->setOrderings(array('uid' => Tx_Extbase_Persistence_QueryInterface::ORDER_ASCENDING));

$query->setLimit((integer)$iLimit);
$Result = $query->execute();

return $Result;

但结果查询不包含与相关的查询部分,

$query->matching($query->logicalAnd($PublicationYears));

我认为上面的查询还有其他错误。

请帮助我创建正确的查询。

提前致谢。

最佳答案

首先你不需要这个

$query->matching( $query->logicalAnd(
   $query->equals('deleted', 0),
   $query->equals('hidden', 0)
));

disable fields 根据 ext_tables.php 中表的设置默认包含在查询中

多重匹配无效 导致你的第三次匹配

$query->matching($query->logicalNot(
 $query->equals('logo', '')
 ));

正在覆盖之前使用的matching() logicalAnd 在字符串上?也不行

在你的情况下,你只需要将所有内容都放在 logicalAnd 中,这样做

$constraints = array();
$subConstraints = array();
$subConstraints[] = $query->equals('ttra', 12);
$subConstraints[] = $query->equals('ttra', 13); 
$subConstraints[] = $query->equals('ttra', 14);
$constraints[] = $query->logicalOr($subConstraints);
$constraints[] = $query->logicalNot(
     $query->equals('logo', '')
 ));

$query->matching($query->logicalAnd($constraints));

关于TYPO3 extbase数据库查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30273934/

相关文章:

apache2 - 为什么apache禁止通过符号链接(symbolic link)访问?

php - Typo3 extbase @param int 不工作

javascript - 为什么合并的 JavaScript 临时文件格式错误?

jquery - TYPO3 v8.7 JQuery 包含在内吗?

typo3 - Viewhelper f :link. TYPO3 9.5 LTS 中的打字链接

php - 从 Controller 中的 FlexForms 获取 TYPO3 插件设置

typo3 - 删除 sys_file_reference 时删除文件

error-log - 显示 type3 中的错误消息

typo3 - 获取扩展不起作用 - 如何修复它?

typo3 - 如何从页面 uid 创建页面 url