如何在Twig中包含语句?

时间:2016-02-26 12:20:42

标签: php symfony twig

根据this page documentatation,以下代码应该可以正常工作:

<div class="paginator">
    <strong>pagina</strong>
    <!-- Loop here -->
    <a class="current "href="#">1</a>
    <!-- End loop -->
    <!-- This tag is only an example: --><a href="#">2</a>
    {% include 'pagination.html.twig' with { 
        currentFilters: { myFilter: filtervariables }, 
        currentPage: page, 
        paginationPath: "myroute", 
        lastPage: totalPages, 
        showAlwaysFirstAndLast: true 
    } only %}
</div>

然而它返回:

Unable to find template "pagination.html.twig" in something.html.twig at line (number).

该页面与pagination.html.twig位于同一文件夹中,因此我似乎无法理解发生了什么。有没有人可以解释我发生了什么?

提前致谢。

2 个答案:

答案 0 :(得分:3)

首先,最好使用include函数而不是标记({{ include('pagination.html.twig, {}) }}),因为该标记已弃用,并且会在某个时候删除(http://twig.sensiolabs.org/doc/functions/include.html

然后,您必须使用模板的完整限定路径名。如果您的pagination.html.twig位于app/Resources/foo/bar文件夹中,则必须撰写foo/bar/pagination.html.twig。如果它在src/Bundle/FooBundle/Resources/views/bar文件夹中,则必须编写@Foo/bar/pagination.html.twig

答案 1 :(得分:0)

尝试使用包名称和查看目录名称等设置路径:

 {{ include('AppBundle:Default:pagination.html.twig', {}) }}

其中&#39; AppBundle&#39;是一个包名称,其中包含&#39;默认&#39;目录有pagination.html.twig文件。