【问题标题】:Grouped view for datasets in sonata admin list view奏鸣曲管理列表视图中数据集的分组视图
【发布时间】:2018-04-13 11:00:35
【问题描述】:

我想知道是否有一种简单的方法可以为按其“根”元素分组的数据集实现组视图。 可以说我有一个“人”实体。许多人可以有一个他们所属的“根”人。所以我会添加对个人实体本身的引用。

现在我不想在平面列表视图中显示每个人。相反,我只想显示每个根人,并通过单击此数据集打开手风琴,其中包含从属人员实体……这怎么可能?

没有手风琴也可以,如果从属实体缩进一点就足够了...

有人可以告诉我应该采用哪种方法吗?如果我可以重用大部分奏鸣曲管理功能,尤其是模板,我会是...

谢谢

【问题讨论】:

    标签: symfony sonata-admin adminlte


    【解决方案1】:

    过去正在解决类似的问题。只需几个步骤即可完成:

    覆盖数据网格中的第一个字段

    使用此代码,您说您想使用 my_custom_template.html.twig 来呈现此字段(在您的管理类中)。

    protected function configureListFields(ListMapper $list)
    {
        $list->add('yourFirstField', null, ['template' => 'my_custom_template.html.twig'])
    }
    

    为 yourFirstField 启用过滤

    为您的父字段准备过滤(在您的管理类中)

    protected function configureDatagridFilters(DatagridMapper $filter)
    {
        $filter->add('parent');
    }
    

    为第一个字段编写自定义模板

    然后在您的自定义模板中,您可以在点击链接时设置过滤器值。

    {% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %} 
    {% block field %}
        {% if object.isRoot %}
            <a href="{{ path('your_route_list", {'filter[name][parent]': object.id} }}">{{ object.name }}</a>
        {% else %}
            {{ object.name }}
        {% endif %}
    {% endblock %}
    

    稍后您可以覆盖中断面包屑生成器服务 (https://sonata-project.org/bundles/admin/master/doc/reference/breadcrumbs.html) 并在面包屑中创建漂亮的路径,以便用户可以导航。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-10
      • 2017-07-05
      • 2017-06-03
      • 1970-01-01
      • 1970-01-01
      • 2020-08-12
      • 2018-04-30
      • 2013-01-20
      相关资源
      最近更新 更多