从Symfony2中的多个实体获取ID实体

时间:2013-05-18 13:15:31

标签: php symfony doctrine

假设我们有一组实体:

$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方法有一个构建吗?

2 个答案:

答案 0 :(得分:2)

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

$idToSearch = $n;

$newCollection = $entities->filter(
    function($entity) use ($idToSearch) {
        return $entity->getId() == $idToSearch;
    }
); 

答案 1 :(得分:1)

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

相关问题