KnpPaginatorBundle-致命错误:DoctrineORMQueryAsIHydrator包含1



我正试图将KnpPaginatorBundle集成到我的Symfony项目中,该项目允许对实体列表进行分页。

所以我按照README的说明安装&像往常一样设置捆绑包。

但是,当我测试KnpPaginatorBundle示例的实现时(复制过去的实现),我会得到以下错误:

Fatal error: Class KnpComponentPagerEventSubscriberPaginateDoctrineORMQueryAsIsHydrator contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (DoctrineORMInternalHydrationAbstractHydrator::_hydrateAll) in D:workspaceweddingvendorknp-componentssrcKnpComponentPagerEventSubscriberPaginateDoctrineORMQueryAsIsHydrator.php on line 13

我在谷歌上没有找到任何解决方案:-/

欢迎任何帮助。。。感谢

我的控制器:

/**
 * @Route("/pagin", name="pagin")
 * @Template()
 */
public function paginAction(){
    $em    = $this->get('doctrine.orm.entity_manager');
    $dql   = "SELECT c FROM LgpWeddingBundle:Contact c";
    $query = $em->createQuery($dql);
    $paginator  = $this->get('knp_paginator');
    $pagination = $paginator->paginate(
            $query,
            $this->get('request')->query->get('page', 1)/*page number*/,
            10/*limit per page*/
    );
    // parameters to template
    // return $this->render('LgpWeddingBundle:Contact:pagin.html.twig', array('pagination' => $pagination));
    return array('pagination' => $pagination);
}

Knp\Component\Pager\Event\Subscriber\Paginate\Doctrine\ORM\Query\AsIHydrator:

class AsIsHydrator extends AbstractHydrator
{
    /**
     * Hydrates all rows from the current statement instance at once.
     */
    protected function hydrateAllData()
    {
        return $this->_stmt->fetchAll(PDO::FETCH_ASSOC);
    }
}

条令\ORM\Internal\Hydration\AbstractHydrator:

abstract class AbstractHydrator
{
    //...
    /**
     * Hydrates all rows from the current statement instance at once.
     */
    abstract protected function _hydrateAll();
    //...
}

您似乎在使用旧版本的Doctrin/ORM。在最新版本中,它应该可以工作。这可能是KNPPaginatorBundle的composer.json的问题,但如果您想要快速修复,只需更新原则即可。

出于好奇,你用Composer安装KNPPaginator了吗?如果是,请提供您的版本。

编辑:我刚刚检查了Bundles,它们无论如何都不依赖于Doctrine/ORM,所以唯一的解决方案是手动更新它。

相关内容

  • 没有找到相关文章

最新更新