0

我是 Symfony 的新手,我想知道这个想法是否可以用 Symfony2 完成。

我需要像仪表板一样创建,其中显示了许多图表。每个图表都有来自模型的数据,但所有内容都应显示在一个模板中。

当我尝试从同一个视图调用不同的动作时,问题就出现了,因为每个动作都需要一个路由,所以我想创建一个控制器动作来调用所有其他动作,并在一个方法中呈现它。

这个想法可以负担得起吗?有没有其他最佳实践可以做到这一点?

视图应该是这样的:

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

{% block body %}
<div id="cabecera">
    <h1>Dashboard</h1>
</div>

<div id="contenido">
    {% block contenido %}{% endblock %}
</div> 
<div id="anonym_users">
    {% block anonym_users %}{% endblock %}
</div>
<div id="registered_users">
    {% block registered_users %}{% endblock %}
</div>
<div id="check_ins">
    {% block check_ins %}{% endblock %}
</div>

<div id="pie">
    <hr/>
    <div align="center">- footer -</div>
</div>
{% endblock %}

每个块都是不同的视图,其中包含来自不同模型/控制器的数据。

提前非常感谢,对不起,如果这是一个真正的新手问题,那就是我。

4

1 回答 1

4

您可以使用片段来做到这一点:http: //symfony.com/blog/new-in-symfony-2-2-the-new-fragment-sub-framework

您可以通过其逻辑路径呈现控制器,例如:

{{ render(controller('Bundle:controller:action')) }}

您可以根据需要使用尽可能多的控制器操作来执行此操作。

然而,视图预防措施避免使用执行重要任务的控制器片段,因为用户可能被迫等待许多数字运算视图出现,而他们只需要查看一个。

此外,避免在片段中放置任何表单(这是表单处理/验证的噩梦)。使每个片段都像一个子仪表板,用户可以在其中选择一个操作,然后将其带到专用表单。

编辑:

关于您当前的代码,在 Twig 中,块只能由扩展块发起者的模板填充,即只有一个模板或在链中更进一步的模板。您不能“包含”模板可以期望它可以访问包含器的块

于 2013-10-10T10:44:43.103 回答