|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre à l'essai
![]() Inscription : mars 2008 Messages : 159 ![]() |
Bonjour,
J'ai généré un module "admin" grâce à l'admin générator. Tout fonctionne normalement. Sur certaines pages je dois avoir un lien qui recharge la page est applique un filtre un champ. Le problème est le suivant : Sur le module (je surcharge la fonction générée dans le cache) la fonction "setFilterts(monFiltre)" fonctionne mais que sur l'id de l'enregistrement qui est ma clé primaire. Si j'applique un filtre sur un autre champ cela ne fonctionne pas. Y a t-il des restrictions sur la fonctions setFilters() ? De plus est il possible de faire un filtre avec une négation : j'affiche les champs qui ne sont pas égale à "maValue" ? ps : Si j'utilise le formulaire de filters auto généré cela fonctionne normalement. Code :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Ce que tu demandes n'est pas très clair, difficile de t'aider.
C'est bien de mettre le code normalement généré, mais tous ceux qui peuvent t'aider le connaissent, mettre le code que tu essaies de valider pourrait permettre de mieux comprendre le problème. Il n'est pas possible avec le système de filtre standard de faire des filtres par négation.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#3 | |
|
Membre à l'essai
![]() Inscription : mars 2008 Messages : 159 ![]() |
Citation:
Le code que j'ai posté n'est pas celui généré. Je rajoute le setFilters et ensuite j'appelle la fonction "parent". |
|
|
|
00
|
|
|
#4 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Je reste certain que si tu mettais le code modifié, on aurait une meilleur approche de ce que désire.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#5 | |||
|
Membre à l'essai
![]() Inscription : mars 2008 Messages : 159 ![]() |
Citation:
Code :
Code :
http://toto.fr/admin_dev.php/gestion?filter[cp]=59
|
|||
|
|
00
|
|
|
#6 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Je vais nettoyer mes lunettes
... Bon, je regarde le code et ... je ne vois toujours pas ce que tu souhaites réellement faire Tu dis que tu veux rajouter des filtres au filtre, mais où les ajoutes-tu ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#7 | |
|
Membre à l'essai
![]() Inscription : mars 2008 Messages : 159 ![]() |
Citation:
En gros j'affiche ma page index donc dans le cache il y a un "executeAction" généré.... Ce que je veux c'est sur cette page index ajouter un filtre si un paramètre est présent. (code ci dessous). Je surcharge donc la fonction Index (code ci dessous) et je rajoute dans cette fonction le setFilters(...). Merci |
|
|
|
00
|
|
|
#8 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Je te propose une autre approche, que j'ai déjà utilisée.
Modifie la génération de la requête. Tu envoies au filtre (objet) un query a compléter. Dans ce query initial, tu y définis le filtre que tu souhaites. Le filtre généré prend donc tous en compte. Je me suis servi de cela pour afficher des listes filtrables en fonction de l'utilisateur (exemple, la liste des contacts d'un utilisateurs, tous les contacts de tous les utilisateurs sont dans une table unique, mais un utilisateur ne peux voir, trier, filtrer que ces contacts).
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#9 | |
|
Membre à l'essai
![]() Inscription : mars 2008 Messages : 159 ![]() |
Citation:
Merci |
|
|
|
00
|
|
|
#10 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Je ne sais pas trop comment tu as bâtis ton contrôleur.
Dans celui-ci, il doit y avoir un moment où tu vas lier le filtre avec les données stockées dans le container de l'utilisateur. Ensuite, tu dois utiliser ce filtre pour générer la partie query de la requête utilisée pour la liste. C'est là qu'il faut intervenir. C'est plus pour des modifications permanentes genre, uniquement les enregistrements liés à l’utilisateur que pour des modifications temporaires du style une sélection par exclusion. Pour celle là, je me demande si tu n'aurais pas intérêt à construire tes propres objets à inclure dans le filtre. Il faudra faire une rétro analyse sur sfFiltre, j'avais creusé la chose, mais c'est un peu loin et je n'ai jamais eu l'occasion de revoir depuis. Mais il me semble que c'est réalisable.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#11 | |||
|
Membre à l'essai
![]() Inscription : mars 2008 Messages : 159 ![]() |
Citation:
Dans mon action je surcharge la fonction buildQuery() qui est auto-généré est visible dans le cache. Ainsi je récupère l'objet query et j'ajoute ce que je veux à ma requête. Code :
|
|||
|
|
00
|
|
|
#12 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
C'est un peu l'idée...
Sauf que je l'aurais fait un appel de fonction plus haut, pour bénéficier de la mise à jour automatique de la fonction si tu rajoutes des champs. Je n'avais pas saisi que tu travaillais sur des formulaires d'admin dont le fonctionnement est un peu particulier.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#13 | |
|
Membre à l'essai
![]() Inscription : mars 2008 Messages : 159 ![]() |
Citation:
Merci |
|
|
|
00
|
|
|
#14 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Celle qui appel le build query.
J'ai tout reconfiguré sur mon poste pour travailler avec symfony 2 et je n'ai pas de cache de symfony 1 avec un module admin généré sous la main Je pense (a vérifier) qu'il serait mieux de modifier cette méthode (celle qui appel le build query) histoire que si tu rajoutes un champ dans ton fichier de configuration de la génération de l'administration, le build query soit modifié en regard.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#15 | |
|
Membre à l'essai
![]() Inscription : mars 2008 Messages : 159 ![]() |
Citation:
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com