gpt4 book ai didi

php - ORM/Doctrine为ArrayCollections设置多个过滤器

转载 作者:行者123 更新时间:2023-11-29 21:44:59 24 4
gpt4 key购买 nike

我以这种方式过滤 ArrayCollection:

$result = $eCollection->getElements()->filter(
function($rObject) use ($id) {
return in_array($rObject->getEid(), array($id));
}
);

但是该集合还有一个名为 type 的属性和一个名为 date 的属性。

如何按 ID 和类型或值之间的日期对其进行过滤?

最佳答案

我认为您应该查看Doctrine\Common\Collections\Criteria。您可以在8.8. Filtering Collections章节中阅读有关标准的所有内容。 在原则 2 文档中。使用条件的优点是您可以添加各种约束,并且它将在数据库级别执行。这意味着您不会不必要地加载集合中您不想要的任何元素。

$elements = $eCollection->getElements();

$criteria = Criteria::create()
->where(Criteria::expr()->eq("id", $id))
->andWhere(Criteria::expr()->eq("type", $type))
->andWhere(Criteria::expr()->between('date', $from, $to));

$result = $elements->matching($criteria);

关于php - ORM/Doctrine为ArrayCollections设置多个过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34184902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com