Symfony2 - Donner un filtre par défaut dans une liste d'éléments de Sonata Admin
J'ai une liste d'éléments de type Véhicule et je montre ces éléments avec Sonata Admin. Je me permet de filtrer ces éléments par le champ "statut", mais je veux que, lorsque la liste est montré, actif uniquement les véhicules sont montré, et si quelqu'un veut voir les inactifs, les véhicules, utilise le filtre et sélectionnez le statut inactif. Je voudrais savoir si quelqu'un Connaît le moyen d'appliquer des filtres par défaut pour une liste des éléments à l'aide de Sonata Admin.
Voici mon code:
public function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('name')
->add('status')
;
}
protected function configureDatagridFilters(DatagridMapper $mapper)
{
$mapper
->add('name')
->add('status')
;
}
Est-il une option qui peut être ajouté à l'état de champ dans configureDatagridFilters() pour atteindre cet objectif? D'autres options?
Merci d'avance.
OriginalL'auteur Airam | 2013-04-25
Vous devez vous connecter pour publier un commentaire.
Vous devez remplacer les
$datagridValues
propriété comme suit (pourstatus > 0
si c'est un entier) :source: Configurer la page par défaut et de la commande dans la vue de liste
Vous êtes les bienvenus ! J'avais trouvé que les informations de configuration dans le github.com/sonata-project/SonataAdminBundle/blob/master/...
Vous monsieur, vous m'avez sauvé un mal de tête!
Je ne comprends pas quel est le sens de
type
. Pouvez-vous expliquer ?Cela fait référence à l'opérateur de filtre, regarde le commentaire à la fin de la ligne 😉 le Type avec la valeur "2" signifie "supérieur à"
OriginalL'auteur AlterPHP
Vous pouvez également utiliser cette méthode
OriginalL'auteur Quiche
En utilisant à la fois au-dessus des suggestions d'approches va casser les filtres "reset" comportement puisque nous sommes toujours en forçant le filtre à l'autre par une valeur par défaut. Pour moi, je pense que la meilleure approche est d'utiliser la getFilterParameters fonction (puisque l'on peut ajouter de la logique de là, au lieu de statiquement ajouter de la valeur) et vérifier si l'utilisateur a cliqué sur le bouton "Reset"
Filter
rien ne se passe, mais quand j'ai réinitialiser le filtre, puis choisissez la valeur, il n'travailJ'ai dû enlever
'type' => EqualType::TYPE_IS_EQUAL
dans mon casOriginalL'auteur eduardo_conceicao
Une autre approche consiste à utiliser createQuery et getPersistentParameters à appliquer invisible filtre. Cette approche est préférable d'avoir entièrement personnalisable filtres. Voir mes articles ici:
http://www.theodo.fr/blog/2016/09/sonata-for-symfony-hide-your-filters/
OriginalL'auteur vicdup