Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/06/2011, 16h24   #1
Invité de passage
 
Inscription : mai 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 11
Points : 1
Points : 1
Par défaut Filter d'administration + Choice/select

Bonjour,

J'ai un problème qui semble récurrent sur le net mais que je n'ai toujours pas réussi à régler.
J'ai une tablecontenu qui a une colonne typecontenu identifié par un int.
J'ai actuellement un filtre sur deux champs + typecontenu.
J'ai mis typecontenu en Choice par :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
$this->setWidgets(array(
      'titrecontenu'            => new sfWidgetFormFilterInput(array('with_empty' => false)),
      'textcontenu'             => new sfWidgetFormFilterInput(array('with_empty' => false)),
      'typecontenu'             => new sfWidgetFormChoice(array('choices' =>  array(0=>'Tous',1=>'Page', 2=>'News')))
));
 
 $this->setValidators(array(
      'titrecontenu'            => new sfValidatorPass(array('required' => false)),
      'textcontenu'             => new sfValidatorPass(array('required' => false)),
      'typecontenu'             => new sfValidatorChoice((array('required' => false, 'choices' => array(0,1,2))))
    ));
Tel quelle, le filtrage via les 2 premiers champs est fonctionnel mais mon champs typecontenu n'est jamais pris en compte !

Y a t-il autres choses à rajouter ?

Merci.
Touco777 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2011, 17h20   #2
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Il faut indiquer à ton form comment générer le filtre. En effet, il sait par défaut générer les clauses pour des recherches texte et numérique et date, mais il n'a aucune idée de comment il va devoir traiter le retour de ton filtre.

Crée une fonction addTypecontenuColumnQuery($query, $field, $value) dans ton filtre. Il faut qu'elle modifie le query en ajout ce qu'il faut pour traiter ta colonne.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2011, 18h19   #3
Invité de passage
 
Inscription : mai 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 11
Points : 1
Points : 1
Le filtre est normalement déjà configuré pour accéder à ce champs puisque si je met mon champs typecontenu en sfWidgetFormFilterInput et que je met '1' dans l'input cela fonctionne !
Ta fonction est elle quand même à rajouter ? Si oui, dans quel fichier ?
Touco777 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2011, 10h26   #4
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Dans la majorité des cas, c'est une méthode magique. Il est possible de la définir pour certains champs si l'on veut un comportement différent.

Au départ j'ai cru que ton problème venait de ce que la méthode magique ne retournait pas le bon query, apparemment, elle le fait correctement. Si tu veux changer la méthode, il faut l'écrire dans l'objet filter concerné.

La question n'est donc pas, pourquoi le bon filtre n'est-il pas généré, mais pourquoi n'ais-je pas la réponse sélectionnée dans ma sélect box qui arrive dans mes réponses...

Regarde en débug, dans la barre de débug, tu as le contenu de l'objet request qui est affiché, ta valeur s'y trouve-t-elle ? Y a-t-il une différence au niveau des noms de variable entre ce paramètre et les deux autres ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h13.


 
 
 
 
Partenaires

Hébergement Web