symfony2学说在arrayCollection中查找id


symfony2 doctrine findBy id in arrayCollection

使用Symfony2.3.4和Doctrine。

我有一个与class Edition有多多关系的class Student。

现在在我的StudentController中,我有这个IndexAction($edition_id)来列出DB中不所有的学生,而只是与给定的版本id相关的学生。

$entities = $em->getRepository('PersonBundle:Student')->findBy(array(
    ????????
));

我正在考虑与$edition_id一起使用的某种标准,但不能提出任何。

谢谢,谢谢。

@dmnptr:我正在尝试,我是新手,如果我做错了什么请告诉我。

我把你写的函数在控制器和方法IndexAction($edition)我添加

$students = this->findAllByEdition($edition);

现在的问题是参数$edition来自如下的分支模板:

<a href="{{ path('student', { 'edition': entity}) }}"</a>

表示持有Edition对象的实体

但是当我这样做的时候实体返回__toString()方法,这意味着一个带有版本名称的字符串,而不是版本本身,这是你给我的函数使用的。

现在,你是否碰巧知道从模板中获取对象本身的方法,而不是__toString()方法,谢谢…

您应该使用自定义存储库方法。传递$edition作为参数,而不仅仅是一个id。像这样:

public function findAllByEdition($edition)
{
    $em = $this->getEntityManager();
    $queryText  = "SELECT s FROM PersonBundle:Student s ";
    $queryText .= "WHERE :edition MEMBER OF s.editions";
    $query = $em->createQuery($queryText);
    $query->setParameter('edition', $edition)
    return $query->getResult();
}