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 :

Doctrine: Admin generator, ajouter un critère à la requete [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 5
    Par défaut Doctrine: Admin generator, ajouter un critère à la requete
    Bonjour,

    voila je débute sur symfony et j'ai un problème que je n'arrive pas a résoudre.

    Sur mon site de test j'ai généré une partie admin "backend" a l'aide de la ligne de commande,

    cela m'affiche bien ma table correctement, cependant j'aimerais ajouter un critère de sélection sur les résultats affichés.

    J'ai déja essayer plusieurs choses, comme mettre un filtre par default :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    # /apps/backend/module/article/articleGeneratorConfiguration.class.php
     
    class articleGeneratorConfiguration extends BaseArticleGeneratorConfiguration
    {
          public function getFilterDefaults()
          {
              return array('une' => 1);
          }
    }

    et j'ai aussi essayer de modifier l'action executeIndex :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    # /apps/backend/module/article/action/actions.class.php
     
      public function executeIndex(sfWebRequest $request)
      {
        $this->pager = $this->configuration->getPager('ActumontagneArticle');
        $this->pager>setQuery($this->buildQuery());
        $this->pager->setPage($this->getPage());
        $this->pager->init();
      }
     
      public function buildQuery()
      {
        $q = doctrine::getTable('Article')->getArticleUne();
        return $q;
      }

    avec ceci cela me donne bien ce que je veut mais les filtres et le trie ne marche plus.

    Comme vous l'avez surement compris j'aimerais donc afficher seulement les articles qui ont le champ 'une' = 1.

    Merci d'avance pour votre aide .

  2. #2
    Membre émérite Avatar de tdutrion
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2009
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 561
    Par défaut
    Bonjour !

    Es-tu sur que c'est possible ?
    Il me semble que Symphony n'est pas très permissif à ce niveau là...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 32
    Par défaut
    Bonjour,
    Si j'ai bien compris bien ton problème, je te renvoie à un Post que j'ai créer il y quelques semaines, je pense qu'il pourra t'aider : http://www.developpez.net/forums/d76...rator-filtres/
    Je peux cependant me trompé et dans ce cas je m'excuse d'avance ! ^^
    Bon courage pour la suite !

  4. #4
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 5
    Par défaut
    Bonjour,

    merci pour ta reponse cacahuete , j'avais déjà lu ton post vu que ton problème ressemblait beaucoup au mien,
    cependant je travail sous doctrine et je ne vois pas trop comment faire l'équivalent.

    Je bloque précisément sur ce point :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public function preExecute(){
      $this->dispatcher->connect('admin.build_criteria',array($this,'myBuildCriteria'));
      parent::preExecute();
    }
     
    public function mybuildCriteria($event,Criteria $c){
      // ici tu modifie le criteria
      return $c;
    }

    je ne vois pas par quoi remplacer "'admin.build_criteria'" dans la fonction preExecute.
    Si tu a une idée je te remercie d'avance pour ton aide !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 32
    Par défaut
    Alors pour moi avec Propel, le admin.buildCriteria() se trouve dans mon 'cache/nom_apps/dev_ou_prod/modules/nom_module/actions/action.class.php'
    Regarde si tu as pas une fonction similaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
     protected function getPage()
      {
        return $this->getUser()->getAttribute('produit.page', 1, 'admin_module');
      }
     
      protected function buildCriteria()
      {
        if (is_null($this->filters))
        {
          $this->filters = $this->configuration->getFilterForm($this->getFilters());
        }
     
        $criteria = $this->filters->buildCriteria($this->getFilters());
     
        $this->addSortCriteria($criteria);
     
        $event = $this->dispatcher->filter(new sfEvent($this, 'admin.build_criteria'), $criteria);
        $criteria = $event->getReturnValue();
     
        return $criteria;
      }
     
      protected function addSortCriteria($criteria)
      {
        if (array(null, null) == ($sort = $this->getSort()))
        {
          return;
        }
     
        $column = ProduitPeer::translateFieldName($sort[0], BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_COLNAME);
        if ('asc' == $sort[1])
        {
          $criteria->addAscendingOrderByColumn($column);
        }
        else
        {
          $criteria->addDescendingOrderByColumn($column);
        }
      }
    Je ne sais pas du tout si ça va t'aider mais peut être que ça va t'aiguiller !

  6. #6
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 5
    Par défaut
    Merci !!

    j'ai été voir ou tu a dit et j'ai trouver ce qu'il me fallait, cela ressemble donc à ceci:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        public function preExecute(){
          $this->dispatcher->connect('admin.build_query',array($this,'myBuildCriteria'));
          parent::preExecute();
        }
     
        public function myBuildCriteria($event,Doctrine_Query $query)
        {
           // ma requete doctrine
     
            return $query;
        }

    ça marche parfaitement maintenant, merci beaucoup, ça faisait un moment que je bloquais la dessus .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [1.x] Requete Admin Generator formulaire
    Par hugo_dev dans le forum Symfony
    Réponses: 3
    Dernier message: 07/06/2011, 11h22
  2. [1.x] Ajout d'une action Import CSV dans l'admin generator
    Par Nico_F dans le forum Symfony
    Réponses: 1
    Dernier message: 02/05/2011, 15h14
  3. Réponses: 9
    Dernier message: 10/02/2011, 10h25
  4. [Doctrine] Admin generator tri sur un partial field
    Par espaceVirtuel dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 04/08/2009, 14h58
  5. choix d'un critère dans requete ajout
    Par JenTry dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 18/07/2007, 14h17

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