2017-07-13 43 views
3

我使用Pagerfanta與Symfony 3.3.4和Bootstrap 3綁定;未知的「pagerfanta」函數

"php": ">=5.5.9", 
    "components/jquery": "^3.2", 
    "doctrine/doctrine-bundle": "^1.6", 
    "doctrine/orm": "^2.5", 
    "incenteev/composer-parameter-handler": "^2.0", 
    "kriswallsmith/assetic": "^1.4", 
    "oyejorge/less.php": "v1.7.0.14", 
    "sensio/distribution-bundle": "^5.0.19", 
    "sensio/framework-extra-bundle": "^3.0.2", 
    "symfony/assetic-bundle": "^2.8", 
    "symfony/monolog-bundle": "^3.1.0", 
    "symfony/polyfill-apcu": "^1.0", 
    "symfony/swiftmailer-bundle": "^2.3.10", 
    "symfony/symfony": "3.3.*", 
    "twig/twig": "^1.0||^2.0", 
    "twitter/bootstrap": "^3.3", 
    "white-october/pagerfanta-bundle": "^1.0" 

然後我有我的appbundle內模板延伸base.html.twig:

{% extends 'base.html.twig' %} 

{% block body %} 
    <nav class="navbar navbar-inverse navbar-fixed-top"> 

...

{% block content %}{% endblock %} 

{% endblock %} 

這又是一個頁面擴展模板:

{% extends '@AppBundle/index.html.twig' %} 

{% block submenu %} 
    <a href="{{ path('site_new') }}" class="btn btn-success"><i class="fa fa-plus"></i> Create</a> 
{% endblock %} 
{% block title %} 
    Manage Sites 
{% endblock %} 
{% block body %} 

    {{ pagerfanta(pager, 'twitter_bootstrap3') }} 

{% endblock %} 

調用帶有

$adapter = new DoctrineORMAdapter($qb); 
    $pager = new Pagerfanta($adapter); 
    $pager->setMaxPerPage(20); 
    $pager->setCurrentPage(intval($this->getSessionPage())); 

    $data = $pager->getCurrentPageResults(); 
    return $this->render('@AppBundle/site/index.html.twig', [ 
     'pager' => $pager, 
     'data' => $data, 
     'order' => $order, 
     'form' => $form->createView() 
    ]); 

模板但是我越來越

Unknown "pagerfanta" function. 

Exception: Twig_Error_Syntax 

它好像沒有被列入此嫩枝功能,但我看不出還有什麼我需要包括。 Pagerfanta也在我的AppKernel.php

+0

我不確定您是否已將此綁定或未綁定,但您是否清除了緩存?使用:'php bin/console cache:clear --no-warmup --env = prod'甚至是'rm -Rf var/cache'我想你可能已經改變了一些東西,但是沒有清除你的緩存。 –

+0

是的,已清除緩存 – jdog

+0

這可能是顯而易見的,我並不十分熟悉這些東西,但是您是否真的創建了Pagerfanta對象並將其註冊到模板中? – Kdawg

回答

4

這看起來像你忘了添加WhiteOctoberPagerfantaBundleAppKernel.php,引起PagerfantaExtension沒有加載,所以{{ pagerfanta() }}功能沒有定義。

$bundles = array(
    // ... 
    new WhiteOctober\PagerfantaBundle\WhiteOctoberPagerfantaBundle(), 
);