我需要我的自定义操作按钮指向已过滤的奏鸣曲列表(课程表),但我需要使用两个参数(公司和外部)。
以前,我一直在使用这种方法:Sonata Admin Action Button to Pre Filtered List,但我无法同时使用两个参数。
compid roundno
1 1
2 2
知道如何解决这个问题吗?我考虑过创建一个控制器并使用自定义的QueryBuilder,但我仍然想使用Sonata列表(并且不会覆盖管理员中的默认ListMapper)
答案 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行之间