You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历TYPO3 QueryInterface多维约束构建logicalAnd嵌套logicalOr

解决方案

你可以通过遍历$constraintsOr数组,为每个子数组生成对应的logicalOr条件,再将这些条件统一传入logicalAnd中,代码实现如下:

方法一:使用array_map快速转换

// 转换每个子数组为logicalOr条件
$andConditions = array_map(function($orConstraints) use ($query) {
    return $query->logicalOr(...$orConstraints);
}, $constraintsOr);

// 构建最终的查询条件
$query->matching($query->logicalAnd(...$andConditions));

方法二:使用foreach手动遍历(更直观)

如果需要更灵活的遍历控制,比如过滤特定键的元素,可以用foreach:

$andConditions = [];
foreach ($constraintsOr as $orConstraints) {
    $andConditions[] = $query->logicalOr(...$orConstraints);
}

$query->matching($query->logicalAnd(...$andConditions));

两种方式都能实现你要的查询结构:每个$constraintsOr的子数组会被展开为logicalOr的参数,所有logicalOr条件再被logicalAnd包裹,最终传入matching方法。

内容的提问来源于stack exchange,提问作者Jacco van der Post

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 07:34:52