mysql - 调用未定义的方法 Doctrine\ORM\QueryBuilder::limit()

标签 mysql query-builder

调用未定义的方法Doctrine\ORM\QueryBuilder::limit()

我搜索了相关查询但没有得到结果

public function getAllCTCCompensationData($ouCode,$langCode)
    { 
    $queryBuilder = $this->entityManager->createQueryBuilder();
    $queryBuilder->select('ppp.payperiodSdesc, ppesa.grossPay, pptpp.pfEmployerContribution, pptpp.esiEmployerContribution, pplw.employercontribution')
        ->from(PyProcessEmpStatusApproved::class, 'ppesa')
        ->leftJoin(PyProcessTdsPfPt::class, 'pptpp', 'with', 'ppesa.ouCode = pptpp.ouCode')
        ->leftJoin(PyPayGroup::class, 'ppg', 'with', 'pptpp.pgCode = ppg.pgCode')
        ->leftJoin(PyProcessLabourWelfare::class, 'pplw', 'with', 'ppg.pgCode = pplw.pgCode')
        ->leftJoin(PyPayPeriod::class,'ppp','with','pplw.payperiodCode = ppp.payperiodCode')
        ->leftJoin(PyPayrollCalendar::class, 'ppc', 'with', 'ppp.paycalCode = ppc.paycalCode')
                ->where('ppesa.ouCode = ?1')
                ->andWhere('ppesa.langCode = ?2')
                ->setParameter('1','ouCode')
                ->setParameter('2','langCode')
                ->where('ppesa.ouCode','DESC')
                ->limit(20);

    $compData  = $queryBuilder->getQuery()->getResult();

    return $compData;

我想在查询中应用限制条件。如何对查询应用限制?

请使用此链接 https://www.doctrine-project.org/projects/doctrine1/en/latest/manual/dql-doctrine-query-language.html#limit-and-offset-clauses 作为引用

为什么说未定义的方法限制?

最佳答案

limit 之前使用 orderBy ,我认为这是错误。

public function getAllCTCCompensationData($ouCode,$langCode)
{ 
    $queryBuilder = $this->entityManager->createQueryBuilder();
    $queryBuilder->select('ppp.payperiodSdesc, ppesa.grossPay, pptpp.pfEmployerContribution, pptpp.esiEmployerContribution, pplw.employercontribution')
        ->from(PyProcessEmpStatusApproved::class, 'ppesa')
        ->leftJoin(PyProcessTdsPfPt::class, 'pptpp', 'with', 'ppesa.ouCode = pptpp.ouCode')
        ->leftJoin(PyPayGroup::class, 'ppg', 'with', 'pptpp.pgCode = ppg.pgCode')
        ->leftJoin(PyProcessLabourWelfare::class, 'pplw', 'with', 'ppg.pgCode = pplw.pgCode')
        ->leftJoin(PyPayPeriod::class,'ppp','with','pplw.payperiodCode = ppp.payperiodCode')
        ->leftJoin(PyPayrollCalendar::class, 'ppc', 'with', 'ppp.paycalCode = ppc.paycalCode')
                ->where('ppesa.ouCode = ?1')
                ->andWhere('ppesa.langCode = ?2')
                ->setParameter('1','ouCode')
                ->setParameter('2','langCode')
                ->orderBy('ppesa.ouCode','DESC')
                ->limit(20);

    $compData  = $queryBuilder->getQuery()->getResult();

    return $compData;
}

关于mysql - 调用未定义的方法 Doctrine\ORM\QueryBuilder::limit(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54397805/

相关文章:

java - mongo问题中的QueryBuilder和 'in'方法

laravel - 如何在查询生成器 laravel 上获取每个组的多个数据

mysql - 按正则表达式匹配的数量排序 mysql 结果

php - mysql_affected_rows 返回 0 但数据库已更改

php - 如何正确完成此爆炸和比较查询?拉拉维尔 5.3

php - Laravel - 组合多个查询以使用单个查询更新两个表的数据

join - Doctrine orm 计数 1 :n relationship on join

外键约束中的mysql循环依赖

mysql - 在不停机的情况下将完整数据库从 utf8mb3 (utf-8) 转换为 utf8mb4 的正确方法是什么?

mysql - 此查询显示 #1248 - 每个派生表必须有自己的别名