2017-01-03 1 views
0

J'ai besoin que mon bouton d'action personnalisée mène à une liste de Sonates (Curriculum) filtrée, mais j'ai besoin d'utiliser deux paramètres (Société et Externe).Personnalisée Action menant à la liste filtrée avec plusieurs paramètres?

Auparavant, j'ai utilisé cette approche: Sonata Admin Action Button to Pre Filtered List, mais je n'ai pas réussi à utiliser deux paramètres en même temps.

<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> 

Une idée comment résoudre ce problème? Je pensais à la création d'un contrôleur et en utilisant un QueryBuilder personnalisé mais je veux quand même utiliser la liste Sonata (et sans écraser mon ListMapper par défaut dans Admin)

Répondre

0

Ce que vous devez faire pour y parvenir est passer outre la méthode createQuery() dans votre admin . La partie difficile est que la requête d'origine pour la liste utilise SELECT DISTINCT donc pour chaque commande que vous ajouterez à la requête, vous devrez ajouter le même champ à l'instruction select.

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

Dans un de mes faisceaux j'ai utilisé une solution de contournement pour ajouter automatiquement les champs dans l'ordre par les clauses de la partie sélection de la requête en étendant la classe ProxyQuery.

si vous voulez jeter un oeil: https://github.com/blast-project/DoctrinePgsqlBundle/blob/master/Datagrid/ProxyQuery.php la magie se passe entre la ligne 98 et la ligne 112

+0

Le problème est que je suis déjà redéfinissant la méthode d'inscription de mon « défaut » ... CreateQuery() J'ai besoin deux listes, une vue de liste par défaut (dans laquelle j'utilise déjà createQuery()), et une autre avec des résultats filtrés (mais en conservant la liste de sonates sans avoir à surcharger les templates et tout ça) –

+0

Je suis désolé je dois avoir mal compris votre question.Vous voulez avoir un lien vers une liste et un autre lien vers une autre liste ou une liste filtrée par deux valeurs? – Mawcel

+0

Liste par défaut (utilisant déjà createQuery) et une autre liste avec des valeurs filtrées –