自定义操作导致带有多个参数的过滤列表?
问题描述:
我需要我的自定义操作按钮导致过滤的奏鸣曲列表(课程),但我需要使用两个参数(公司和外部)。自定义操作导致带有多个参数的过滤列表?
以前,我一直在使用这种方法: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列表(并且不会覆盖管理员中的默认ListMapper)
答
您需要做的是取代管理中的createQuery()
方法。
棘手的部分是,该列表的原始查询使用SELECT DISTINCT
,因此对于您将添加到查询中的每个订单,您需要将相同的字段添加到select语句。
https://github.com/sonata-project/SonataAdminBundle/issues/1548
以我束的一个我用一种变通方法自动变化,以便通过子句到查询的选择部分由延伸的ProxyQuery类添加字段。
,如果你想看看:行98和行112
问题之间https://github.com/blast-project/DoctrinePgsqlBundle/blob/master/Datagrid/ProxyQuery.php神奇的情况是,我已经重写的createQuery()方法为我的“默认”上市...我需要两个列表,一个默认列表视图(其中我已经使用createQuery()),另一个列表具有过滤结果(但保留使用奏鸣曲列表而不需要重写模板以及所有这些) –
对不起,我一定误会了你的问题。你想有一个链接到一个列表和另一个链接到另一个列表或一个列表过滤两个值? – Mawcel
默认列表(已经使用createQuery)和另一个具有过滤值的列表 –