自定义操作导致具有多个参数的筛选列表?

时间:2017-01-03 12:21:34

标签: symfony twig sonata-admin sonata

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

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

compid  roundno
1        1
2        2

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

1 个答案:

答案 0 :(得分:0)

要实现此目的,您需要覆盖管理员中的createQuery()方法。

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

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

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

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