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

时间:2015-12-09 17:13:18

标签: php mysql doctrine-orm

我以这种方式过滤了一个ArrayCollection:

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

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

我如何按ID和TYPE过滤它,或者在值之间按DATE过滤?

1 个答案:

答案 0 :(得分:0)

我认为你应该看看LastChangedBy。您可以在doctrine 2文档中的 8.8. Filtering Collections 一章中阅读所有相关标准。 使用标准的优点是您可以添加各种约束,它将在数据库级别执行。这意味着您不会不必要地加载您不希望拥有的集合中的任何元素。

ItemName     CreateDate     Created By Name    CreatedBy    LastChanged    Last Changed By Name    LastChangedBy

Item A       12/01/2015     Smith, John        0001         12/03/2015     Smith, John             0001
Item B       12/02/2015     Smith, John        0001         12/04/2015     Smith, John             0001
Item C       12/02/2015     Doe, Jane          1002         12/05/2015     Doe, Jane               0001