11
votes

Magento Désactiver le champ de filtre à la grille d'administration

J'ai un module personnalisé avec une page de backend. Dans la grille, je montre le courrier électronique client comme nom d'utilisateur. Par défaut, Magento ajoute un filtre à chaque colonne de la grille. Maintenant, lorsque j'essaie de filtrer par le courrier électronique du client, je reçois une exception disant que ma table personnalisée n'a pas de colonne de messagerie. Magento essaie de trouver cela dans ma table personnalisée. Comment puis-je résoudre ce problème, ou comment puis-je supprimer le champ de cette colonne afin que l'administrateur ne puisse pas filtrer par ce champ. Merci.


0 commentaires

3 Réponses :


2
votes

Je suppose que vous pensez que vous vouliez dire "Comment puis-je supprimer le champ de cette colonne de sorte que l'administrateur puisse" "fort> t filter par ce champ"

Si tel est le cas, je peux vous dire comment supprimer le champ de messagerie.

ouvrir /app/code/local/namespace/module/block/adminthml/Module/grid.phpled/produle/grid.phplewewhere dans la fonction protégée _Prepapeolumns () Vous devriez trouver quelque chose comme: xxx

commencent simplement ces lignes.

et faites attention à cela, dans la méthode __construction au tout début de la classe entière, vous n'avez pas t avoir xxx

si oui, changez-le sur xxx


2 commentaires

OK, je veux montrer la colonne, mais retirer le champ en haut de la colonne, comment puis-je faire cela?


Si je fais cela, je retire la colonne, je ne veux pas retirer la colonne, juste le champ en haut de celui-ci, qui est utilisé pour filtrer



39
votes

ajout de l'option xxx

à la colonne que vous souhaitez retirer le filtre de la vue de la grille (par exemple, application / code / coeur / mage / adminhtml / block / ventes / ventes .php) xxx


0 commentaires

1
votes

Si vous n'avez pas de colonne de messagerie dans votre table personnalisée, je suppose que vous créez votre réseau en rejoignant votre table personnalisée à une table principale contenant l'adresse électronique des utilisateurs, telle que CustomerTity .

Lorsque vous filtrez sur une colonne, Magento utilise l'index de la colonne pour produire la clause WHERE. Qui dans votre cas donnera quelque chose comme où envoyer un e-mail comme '% de la valeur du filtre%' , mais il ne trouvera pas de courrier électronique dans votre table personnalisée.

Vous pourriez peut-être résoudre ce problème par Utilisation de Filter_index Pour informer explicitement Magento quelle table et la colonne à utiliser lors de la construction de la clause WHERE. Essayez quelque chose comme ça xxx

core_table est la table que vous joignez avec.


0 commentaires