从Symfony2中的树枝模板中获取数据?

ed2*_*209 3 php symfony twig

我想从数据库中获取数据并将其显示在模板中.我通常会在控制器内执行此操作并将该数据作为变量传递,但是我想使用相同的方法获取不同数量的数据,具体取决于调用该方法的模板.我看过嵌入式控制器,但我只想要数据,而不是渲染HTML http://symfony.com/doc/2.0/book/templating.html#embedding-controllers

{# views/template1.html.twig #}

{% for item in FetchDBdata('someParam', 20)  %}
    {{ item.name }}
    {{ item.title }}
{% endfor %}


{# views/template2.html.twig #}

{% for item in FetchDBdata('someOtherParam', 40)  %}
    {{ item.name }}
    {{ item.title }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

FetchDBdata('someParam', 40)应用程序中的服务类位于何处

Kas*_*een 9

要添加到我上面的评论中:

您有一个控制器,其中包含一个获取数据的操作:

ACME\SomeBundle \控制器\ DataController.php

/**
 * @Template
 */
public function fetchDataAction($someParam, $quantity) {
    $data = doSomethingWithDatabase();

    return array('data' => $data);
}
Run Code Online (Sandbox Code Playgroud)

ACME\SomeBundle \资源\图\ DATA\fetchData.html.twig

{% for item in data %}
    {{ item.name }}
    {{ item.title }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

然后在你的template1template2你可以硬编码您的值,如果适合,或使用分别传递给这些模板的值.

{% render 'AcmeSomeBundle:Data:fetchData' with {'someParam': 'something', 'quantity': 20} %}
Run Code Online (Sandbox Code Playgroud)