条令如何使用子句:findOneBy中的IN



我在Symfony2中的一个项目中工作,我有一个名为File的实体,我试图做的是从数据库中获得一个具有某些条件的文件,但最重要的条件是该文件不应与给定的Id数组匹配,并且没有在文件存储库中实现方法

$Ids = (1,2,3,4,5);
$file = $repoFile->findOneBy(array(
      'id'=> $Ids,    // the Id should not match with the array $Ids
      'deleted' => NULL,
      'isMain' => 1
  ));

我如何告诉条令文件不应该与数组匹配:$Ids我更喜欢直接在我的类中进行,而不必在文件Repository

中实现方法

您可以将createQueryBuilder用于NOT IN()子句

$result= $repoFile->createQueryBuilder('r')
    ->select('r')
    ->where('r.id NOT IN (:ids)' )
    ->setParameter( 'ids', $Ids, DoctrineDBALConnection::PARAM_INT_ARRAY )
    ->andWhere('r.deleted = :deleted')
    ->setParameter('deleted',NULL)
    ->andWhere('r.isMain= :isMain')
    ->setParameter('isMain',1)
    ->getQuery()->getResult();

相关内容

  • 没有找到相关文章

最新更新