Symfony 奏鸣曲上的嵌套块显示动作

Symfony 奏鸣曲上的嵌套块显示动作,symfony,sonata-admin,Symfony,Sonata Admin,我想用索纳塔建立一个这样的演出视图: +---------------------------------------------------+ | PAGE | | | | +---------------------------+ +-----------+ | | | BLOCK 1

我想用索纳塔建立一个这样的演出视图:

+---------------------------------------------------+
|   PAGE                                            |
|                                                   |
|   +---------------------------+   +-----------+   |
|   |   BLOCK 1                 |   |   BLOCK 2 |   |
|   |  +--------+   +-------+   |   |           |   |
|   |  | 1.1    |   | 1.2   |   |   |           |   |
|   |  |        |   |       |   |   |           |   |
|   |  |        |   |       |   |   |           |   |
|   |  |        |   |       |   |   |           |   |
|   |  +--------+   +-------+   |   |           |   |
|   +---------------------------+   +-----------+   |
|                                                   |
+---------------------------------------------------+
我知道您可以使用“with()”方法构建块1和块2,但我看不到任何将块1.1和1.2嵌套到块1中的方法。我不想使用标签,我希望所有内容都在同一页上


有没有办法嵌套1级以上的块?

好的。你必须表现出行动。您可以使用两个块(
我的意思是->with()
)。 在这两个块中,也有不同的字段。您可以覆盖其中一个字段的模板以及该模板中所需的任何内容。您可以创建事件块(使用索纳塔样式),它看起来像千,由索纳塔
->with()
制作

在sonata admin中:

->with('Block1')
    ->add('your_field', null, [
          'required' => false,
          'template'  => 'AppBundle::Admin\path_to_your_template\show_some_field.html.twig',
    ])
->end()
以及您的模板:

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

{% block field %}
    {#  Make here whatever you want #}
    {{ object.your_field }}
{% endblock field%}

如果你需要的话,我可以推荐一个样品

我从没试过这个。您可以尝试覆盖sonata admin bundle的CoreController和模板(如果我们讨论的是dashboard,如果不是,那么可以在您自己的控制器中创建渲染逻辑),并创建一些自己的渲染块逻辑。