Symfony2 Doctrine联合请求

时间:2015-02-24 23:51:47

标签: symfony doctrine

我正在使用带有symfony的doctrine和我在Entity Advert中创建的2个方法来加载数据

public function getAdvertAccordingToCategories(array $categories){
    $qb = $this -> createQueryBuilder('a');
    $qb->join('a.categories' , 'cat')
    ->addSelect('cat');
    $qb->where($qb->expr()->in('cat.name', $categories));

   return $qb ->getQuery()->getResult();
}   

public function getAdvertWithContributions(){
    $qb =   $this -> createQueryBuilder('a')
    ->leftJoin('a.condidatures' , 'cond')
    ->addSelect('cond');

    return $qb->getQuery()->getResult();
}

我从控制器中调用它们

$listAdverts = $em ->getRepository('boudaplatformBundle:Advert')->getAdvertWithContributions();

 $advertTest = $em ->getRepository('boudaplatformBundle:Advert')->getAdvertAccordingToCategories(array('xxx' , 'yyy'));

如果我使用带有参数的第二种方法,任何广告都像xxx一样,yyy一切都很好,第一种方法不返回任何东西,第二种方法返回我的广告实体和她的类别

 $listAdverts = $em ->getRepository('boudaplatformBundle:Advert')->getAdvertWithContributions();

 $advertTest = $em ->getRepository('boudaplatformBundle:Advert')->getAdvertAccordingToCategories(array('Games' , 'anime'));

当我使用类别参数时,广告是我的一部分,我有相同的广告,但当我循环广告的类别时,我发现只传递参数:游戏和动漫“两种方法”

我真的不明白为什么在第二种情况下,即使从getAdvertWithContributions()检索的数据被修改,我也应该收到相同的结果

0 个答案:

没有答案
相关问题