KnpPaginatorBundle - 致命错误:Doctrine \ ORM \ Query \ AsIsHydrator包含1个必须实现的抽象方法

时间:2013-08-19 12:22:25

标签: symfony bundle knppaginator

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

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

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

Fatal error: Class Knp\Component\Pager\Event\Subscriber\Paginate\Doctrine\ORM\Query\AsIsHydrator contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Doctrine\ORM\Internal\Hydration\AbstractHydrator::_hydrateAll) in D:\workspace\wedding\vendor\knp-components\src\Knp\Component\Pager\Event\Subscriber\Paginate\Doctrine\ORM\Query\AsIsHydrator.php on line 13

我在Google上找不到任何解决方案: - /

欢迎任何帮助......谢谢

我的控制器:

/**
 * @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 \元器件\寻呼机\事件\订户\ PAGINATE \学说\ ORM \查询\ AsIsHydrator:

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 \内部\水化\ AbstractHydrator:

abstract class AbstractHydrator
{
    //...

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

    //...
}

1 个答案:

答案 0 :(得分:0)

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

出于好奇,您是否使用Composer安装KNPPaginator?如果是这样,请提供您的版本。

编辑: 我刚刚查看了Bundles,但他们还没有关于Doctrine / ORM的依赖,所以唯一的解决办法就是手动更新它。