Symfony 3.4嵌入控制器模板

时间:2019-02-09 13:26:58

标签: symfony symfony-3.4

我试图将控制器嵌入模板中,但是它不起作用。

这是我的代码:

/** PostBundle this is the main action call by the user */
public function statisticAction(Request $request)
{
    return $this->render('@Post/statistic/statistic.html.twig');
}

/** The template Post/statistic/statistic.html.twig */
{% block body %}
<div id="wrapper">
    <div id="container">
        <h1>Statistics</h1>

        <div> 
 {{render_esi(controller('DoctrineBehaviorsBundle:Comment:statistic', 
 {'filter': {'year': 'desc'}})) }}</div>
    </div>
</div>
{% endblock %}

/** DoctrineBehaviorsBundle:Comment:statistic*/
public function statisticAction($filter = [])
{
    list($func, $stats) = $this->getDoctrine()->getRepository(CommentRecord::class)->fetchStatistics($filter);

    /** @var Response $response */
    $response = $this->render('@DoctrineBehaviors/comment/statistic.html.twig', [
        'func' => $func,
        'stats' => $stats,
    ]);

    $response->setSharedMaxAge(600);

    return $response;
}

/** And the template DoctrineBehaviors/comment/statistic.html.twig */
<table class="sto_doctrine_behaviors__table sto_doctrine_behaviors__table__statistics">
<caption class="sto_doctrine_behaviors__table__caption">Statistics for comment record</caption>

<thead class="sto_doctrine_behaviors__table__head">
    <tr>
        <th>{{ func|upper }}</th>
        <th>Class name</th>
        <th>Total</th>
    </tr>
</thead>

<tbody class="sto_doctrine_behaviors__table__body">
    {% for key, value in stats %}
        {% for s in value %}
        <tr>
            <td>{{ key }}</td>
            <td>{{ s['class_name'] }}</td>
            <td>{{ s['class_total'] }}</td>
        </tr>
        {% endfor %}
    {% endfor %}
</tbody>

在我的项目中,我有另一个渲染控制器,并且一切正常。区别在于我在arg中将第一个控制器的对象传递给了渲染控制器。

那么Symfony doc有什么区别?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我在听众上评论了一行,现在一切正常。 我现在需要在该侦听器上工作。