首页 > 解决方案 > TYPO3 数据库查询

问题描述

我使用的扩展程序有问题。我收到了这个错误:

"TYPO3.CMS.Frontend.ContentObject.Exception.ProductionExceptionHandler": Oops, an error occurred! Code: 202008171404455cdd4e46 - {"exception":"TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Exception\\InvalidNumberOfConstraintsException: There must be at least one constraint or a non-empty array of constraints given.

同时,我的存储库中有这段代码

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

我的问题是:如何在 TYPO3 中编写符合条件的代码:

“给定至少一个约束或一组非空约束”。

标签: databasetypo3repository

解决方案


首先,在 ROOT TS 中禁用 ExceptionHandler:

config.contentObjectExceptionHandler = 0 

正如您所说的:您似乎有一个空数组 $contraints == []。详细帮助请发布孔代码!

例子:

public function findUser(
    \VENDOR\Ext1\Domain\Model\MyModel $m
)
{
    $query = $this->createQuery();

    $constraints = [];
    $constraints[] = $query->equals('pid', $m->getPid());
    $constraints[] = $query->contains('type', $m->getType());

    if ($condition) {
        $constraints[] = $query->contains('topics', $m->getTopic());
    }

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

    return $query->execute();

}

推荐阅读