渲染模板可在symfony / sonata admin中与hinclude一起使用

时间:2018-07-24 12:46:44

标签: php symfony twig sonata-admin

我想在我的奏鸣曲管理员的一栏中呈现状态,因此我使用hinclude(用于异步获取数据的js库)在页面已加载后通过ajax收集状态(仅用于页面加载速度更快,状态收集可能需要更长的时间。

我的奏鸣曲列表映射器中的列模板如下所示。

{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}

{% block field %}
    {{ render_hinclude(controller('AppBundle:Item:getStatus', {'item' : item.id, '_sonata_admin' : admin.code })) }}
{% endblock %}

只要我只有一个控制器(AppBundle:Item:getStatus)生成状态响应,就可以正常工作。

现在,我想将getStatus方法用于多个实体/管理员/控制器。

我不想一次又一次地写相同的模板,所以我想将其概括化。我的方法是编写一个通用的抽象控制器,其中包含“ getStatus”方法,并且扩展该控制器的每个控制器都会自动执行操作。效果很好,但

如何根据调用控制器动态替换树枝模板中的控制器名称?

在上面的示例中,它使用了特定的控制器“ ItemController”,但是如果我要将其用于Persons“ PersonController”怎么办?

就像管理员上方的示例一样。代码,则管理员代码是每次使用奏鸣曲管理员中的管理员代码。但是无法在树枝模板中获取当前的控制器名称,还是我错了?

在Sonata admin中设置一个包含当前控制器名称的附加公共字段感觉不好,尤其是我的admin类中没有em。

有人对我有很好的解决方案吗?另一种方法?

谢谢

0 个答案:

没有答案