2011-08-05 3 views
0

Comment puis-je obtenir l'ID de numéro en action? par exempleget value in action class

class jobActions extends sfActions 
{ 
     public function executeIndex(sfWebRequest $request) 
     { 
     $this->jobeet_jobs = Doctrine::getTable('JobeetJob') 
      ->createQuery('a') 
      ->where('id = 3') 
      ->execute(); 

     echo $this->jobeet_jobs->getId(); //doesnt work 
     } 

     public function executeTest(sfWebRequest $request) 
     { 
     $this->id = $this->jobeet_jobs->getId(); /doesnt work 
     } 
} 
+0

Avez-vous des erreurs? La requête envoie-t-elle même une syntaxe correcte à la base de données? – scube

Répondre

1

Comme execute retourne un tableau d'objets, soit vous devez itérer les recieving les ids ou vous utilisez $this->jobeet_jobs = Doctrine::getTable('JobeetJob') ->createQuery('a') ->where('id = 3') ->fetchOne();

+0

Comme vous utilisez symfony, pourquoi n'utilisez-vous pas find ('3')? Cela va essayer d'utiliser la clé primaire et retourne un seul résultat, ce qui devrait répondre à vos besoins! – Sgoettschkes

3

Dans votre fonction executeIndex vous récupérez une Doctrine_Collection (une liste). Remplacer ->execute(); avec fetchOne();

Ou vous utilisez certaines des fonctions pratiques suivantes:

->find($yourID); // Returns ONE object 
->findByColumnnamehere($yourValue); // Returns LIST of objects 
->findOneByColumnnamehere($yourValue); // Returns ONE object 
+0

assurez-vous que '$ yourID' est une clé primaire. aussi possible serait '-> find (1,2)' (en supposant que vous avez 2 primaires) ou '-> find (array (1,2))' (vous renvoie une collection où id = 1 ou id = 2) – Flask