IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Filter d'administration + Choice/select


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    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.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Par défaut
    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 ?

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    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 ?

  5. #5
    Invité de passage
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2013
    Messages : 1
    Par défaut
    désolé, la réponse vient avec un retard de plus d'une année.

    voici une solution est de surcharger la méthode bind du filtre comme suit:

    public function bind(array $taintedValues = null, array $taintedFiles = null)
    {
    $taintedValues["'typecontenu'"] = array("text" => $taintedValues["'typecontenu'"]);

    parent::bind($taintedValues, $taintedFiles);
    }

    le widget sfWidgetFormFilterInput est rendu dans un tableau avec l'index 'text' qui contient la valeur soumise

Discussions similaires

  1. Probleme itemlistener avec fonction select et composant Choice
    Par simonphenix dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 07/07/2009, 11h23
  2. [Dojo] Modifier la largeur du select dans : Dijit / Form Controls / Filtering Select / Basic
    Par zied.ellouze dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 04/05/2009, 13h16
  3. Selection par default d'une Choice
    Par ptitepo dans le forum Débuter
    Réponses: 3
    Dernier message: 03/02/2009, 10h39
  4. Réponses: 4
    Dernier message: 06/11/2007, 09h58
  5. [FLASH MX] selection.data Radio pour filter
    Par totoche dans le forum Flash
    Réponses: 9
    Dernier message: 09/12/2005, 10h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo