2017-01-03 10 views
0

Мне нужно, чтобы моя пользовательская кнопка действия привела к отфильтрованному списку сонаты (учебный план), но мне нужно использовать два параметра (компания и внешний).Пользовательское действие, ведущее к фильтруемому списку с несколькими параметрами?

Раньше я использовал этот подход: 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 по умолчанию в Admin)

ответ

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

+0

Проблема заключается в том, что я уже переопределение метода CreateQuery() для моей «по умолчанию» список ... мне нужно два списка, представление списка по умолчанию (в котором я уже использую createQuery()), а другой - отфильтрованные результаты (но сохраняя использование списка сонаты, не требуя переопределения шаблонов и всего этого) –

+0

Прошу прощения, я, должно быть, неправильно понял ваш вопрос. Вы хотите иметь ссылку на список и другую ссылку на другой список или один список, отфильтрованный двумя значениями? – Mawcel

+0

Список по умолчанию (уже используется createQuery) и еще один список с отфильтрованными значениями –