-2

假设我们有一组实体:

$entities = $em->getRepository('MyBundle:Entity')->findBy(array('cat' => 1));

通过 ID 从该集合中提取单个实体的最佳方法是什么?当然我可以用循环或用 搜索它array_filter,例如:

$entity = null;
foreach ($entities as $_entity) {
    if ($_entity->getId() == $id) {
        $entity = $_entity;
        break;
    }
}

但也许有一个 Symfony/Doctrine 方法的构建呢?

4

2 回答 2

2

嗨,您可以使用ArrayCollection类中的过滤器方法,但它与您正在做的循环实体没有太大区别

$idToSearch = $n;

$newCollection = $entities->filter(
    function($entity) use ($idToSearch) {
        return $entity->getId() == $idToSearch;
    }
); 
于 2013-05-18T14:45:31.350 回答
1

您需要使用 迭代它们foreach,尽管它的扩展性很差。根据您期望的结果数量,简单地运行两个查询可能会更快。

于 2013-05-18T21:17:23.137 回答