【问题标题】:Custom Action leading to filtered list with multiple parameters?导致具有多个参数的过滤列表的自定义操作?
【发布时间】:2017-05-17 13:02:26
【问题描述】:

我需要我的自定义操作按钮指向过滤后的奏鸣曲列表(课程),但我需要使用两个参数(公司和外部)。

以前我一直在使用这种方法:Sonata Admin Action Button to Pre Filtered List,但我无法同时使用两个参数。

<a class="btn btn-sm btn-default" href="{{ path('admin_myvendor_mybundle_curriculum_list',{'filter[companies][value]' : object.id }) }}"><i class="fa fa-university"></i> Curriculums </a>

知道如何解决这个问题吗?我考虑过创建一个控制器并使用自定义 QueryBuilder,但我仍然想使用 Sonata 列表(并且不会在 Admin 中覆盖我的默认 ListMapper)

【问题讨论】:

    标签: symfony twig sonata-admin sonata


    【解决方案1】:

    您需要做的是在您的管理员中覆盖 createQuery() 方法。

    棘手的部分是列表的原始查询使用SELECT DISTINCT,因此对于您将添加到查询中的每个订单,您需要将相同的字段添加到选择语句中。

    https://github.com/sonata-project/SonataAdminBundle/issues/1548

    在我的一个捆绑包中,我使用了一种解决方法,通过扩展 ProxyQuery 类,自动将字段按子句顺序添加到查询的选择部分。

    如果你想看看:https://github.com/blast-project/DoctrinePgsqlBundle/blob/master/Datagrid/ProxyQuery.php 魔法发生在第 98 行和第 112 行之间

    【讨论】:

    • 问题是我已经为我的“默认”列表覆盖了 createQuery() 方法...我需要两个列表,一个默认列表视图(我已经在其中使用 createQuery( )),另一个带有过滤结果(但继续使用奏鸣曲列表而不需要覆盖模板和所有这些)
    • 很抱歉,我一定误解了您的问题。您想要一个指向一个列表的链接和另一个指向另一个列表的链接,或者一个由两个值过滤的列表?
    • 默认列表(已使用 createQuery)和另一个过滤值列表
    猜你喜欢
    • 2013-08-03
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    • 2022-07-04
    • 2018-11-03
    • 1970-01-01
    相关资源
    最近更新 更多