Filter 一个过滤器如何将另一个过滤器的结果与逻辑AND结合起来?

Filter 一个过滤器如何将另一个过滤器的结果与逻辑AND结合起来?,filter,widget,typo3,extbase,fluid,Filter,Widget,Typo3,Extbase,Fluid,我有两个过滤器。一个筛选器获取另一个筛选器的结果: <example:widget.myfilter objects="{blogs}" as="filteredblogs" property="features.uid"> <example:widget.anotherfilter objects="{filteredblogs}" as="filteredmoreblogs&q

我有两个过滤器。一个筛选器获取另一个筛选器的结果:

<example:widget.myfilter objects="{blogs}" as="filteredblogs" property="features.uid">
    <example:widget.anotherfilter objects="{filteredblogs}" as="filteredmoreblogs" property="test.name">
过滤器2控制器:

public function indexAction(string $filtertest = ""): void
    {
        $query = $this->objects->getQuery();
        $query->matching($query->like($this->property, $filtertest));
        $modifiedObjects = $query->execute();
        $this->view->assign('contentArguments', [
            $this->as => $modifiedObjects
        ]);
我的问题是,两者都提出了一个查询,但忽略了对方。第二个过滤器覆盖第一个过滤器

在两个过滤器之间需要一个逻辑AND


有什么想法吗?

尽管这可能不是你想要的答案,但是:不要使用小部件

在TYPO3 11中,所有小部件都已从TYPO3中删除,请查看有关此重要更改的文档:



作为一种解决方案,我建议您将逻辑移回主控制器,并在此处解决它。我更喜欢使用一个简单的PHP对象来配置这样的过滤器。你可以看看

我从来没有想过。我在一本书中了解到过滤器是用小部件实现的。谢谢你的主意。我现在重建了它,效果很好。
public function indexAction(string $filtertest = ""): void
    {
        $query = $this->objects->getQuery();
        $query->matching($query->like($this->property, $filtertest));
        $modifiedObjects = $query->execute();
        $this->view->assign('contentArguments', [
            $this->as => $modifiedObjects
        ]);