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

ORM PHP Discussion :

Question à propos de method_for_query [Doctrine]


Sujet :

ORM PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 15
    Par défaut Question à propos de method_for_query
    Bonjour,

    En relisant le tutoriel Jobeetje me suis aperçu que j'avais zappé cette petite incantation magique. J'ai bien compris le principe, par contre je ne comprend pas comment elle fonctionne :

    routing.yml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    news_show:
      url:   /news/:id/:news_slug/
      class: sfDoctrineRoute
      options: { model: News, type: object, method_for_query: retrieveActiveNews }
      param: { module: news, action: show }
      requirements:
        id: \d+
        sf_method: [get]
    la classe NewsTable (il n'y a rien d'autre dedans sauf la fonction statique getInstance)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        public function retrieveActiveNews(Doctrine_Query $q)
        {
          $q->andWhere('a.is_activated = ?', true);     
          return $q->fetchOne();
        }
    l'action
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      public function executeShow(sfWebRequest $request)
      {
        $this->news = $this->getRoute()->getObject();
      }
    Pourquoi si je met autre chose que 'a.is_activated', par exemple 'n.is_activated', cela me renvoie une erreur 500: Couldn't find class n lorsque j'affiche mon enregistrement. Si je met le 'a' tout fonctionne bien...

    Quelque chose m'échappe, d'où il sort ce 'a' ??

  2. #2
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    C'est l'alias pour la table. Il a été généré par Doctrine quand il a construit la Doctrine_Query $q, par exemple avec un code du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MaTable::getInstance()->createQuery('mt');
    qui utilisera 'mt' comme alias.

    Dans ton cas, pour éviter les soucis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public function retrieveActiveNews(Doctrine_Query $q)
        {
          $alias = $q->getRootAlias();
          $q->andWhere("$alias.is_activated = ?", true);     
          return $q->fetchOne();
        }

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 15
    Par défaut
    ...Et la lumière fut !

    Merci

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

Discussions similaires

  1. Question à propos des compilateurs
    Par elf dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 20/07/2005, 17h00
  2. Question à propos des niveaux de transaction
    Par davy.g dans le forum Oracle
    Réponses: 3
    Dernier message: 18/01/2005, 15h31
  3. Petite question à propos du redbook...
    Par Michaël dans le forum OpenGL
    Réponses: 3
    Dernier message: 04/11/2004, 12h54
  4. Petite question à propos d'une requete
    Par ViBy dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/09/2004, 12h21
  5. Une question à propos des thread
    Par tscoops dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/11/2003, 14h03

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