Doctrine orm 如何根据条令中的存储库/条件获取查询?
我怎样才能根据Doctrine orm 如何根据条令中的存储库/条件获取查询?,doctrine-orm,doctrine,knppaginator,Doctrine Orm,Doctrine,Knppaginator,我怎样才能根据标准获得查询 我制定了以下原则标准: $criteria = Criteria::create(); $criteria->where(Criteria::expr()->eq("versionFinale", true)) ->andWhere(Criteria::expr()->eq("versionSoftDeleted", false)) ->andWhere(Criteria::expr()->eq("versionSt
标准获得查询
我制定了以下原则标准:
$criteria = Criteria::create();
$criteria->where(Criteria::expr()->eq("versionFinale", true))
->andWhere(Criteria::expr()->eq("versionSoftDeleted", false))
->andWhere(Criteria::expr()->eq("versionStatus", "PUBLISHED"));
通常,我会使用以下代码获得结果:
$repo->matching($criteria)
然而,由于我想使用KNP Paginator,我需要一个查询
我可以使用:
$this->createQueryBuilder('a')
->addCriteria($criteria);
然而,这将需要我在查询生成器中提供repo,这将不是非常优雅和高效
如何根据存储库和条件获取查询?在创建某种PaginaTorRyService时,有什么不优雅的地方?只需实现类似的功能(未经测试)
class PaginatorQueryService
{
private $em;
function __construct(EntityManagerInterface $em)
{
$this->em = $em;
}
public function getPaginatorQuery($repository, $criteria)
{
return $this->em->createQueryBuilder()->select('entity')->from($repository, 'entity')->addCriteria($criteria)->getQuery();
}
}