c'est normal que tu n'ai pas le getId() puisqu'avec un doSelectRS tu
n'as plus la fonction d' "hydrating", ca te retourne en fait un
tableau. Apres le doSelectRS tu peux utiliser qq chose comme ca:
$rs = self::doSelectRS($c);
while($rs->next())
{
$tags[] = $rs->getString(1);
}
return $tags;
bien sur il faut mettre dans ta boucle tous les champs dont tu as
besoin.
On Nov 26, 1:57 am, Guillaume <[EMAIL PROTECTED]> wrote:
> Arf, effectivement... Mais bon, j'ai fini 90% de mon application,
> c'est un peu tard pour reprendre tout avec un plugin. Et juste à titre
> d'apprentissage, j'aimerais quand même savoir s'il existe des
> solutions viables à mon problème ; ca peut servir pour d'autres
> applis.
>
> On 25 nov, 18:32, "Renaud LITTOLFF" <[EMAIL PROTECTED]> wrote:
>
> > si tu souhaites gérer des tags, il y a un plugin qui le fait plutot
> > très bien, peut etre que tu pourrais l'utiliser en lieu et place de
> > ton systeme... ou alors sqi ca peut t'aider :)
>
> > Le 25/11/07, Guillaume<[EMAIL PROTECTED]> a écrit :
>
> > > Merci pour ta réponse, c'est effectivement une bonne solution. Voici
> > > le code que j'obtiens :
>
> > > $c = new Criteria();
>
> > > $c->AddJoin(TagsPeer::ID_ARTICLE, ArticlePeer::ID);
> > > $c->addSelectColumn(TagsPeer::ID);
> > > $c->addSelectColumn(TagsPeer::TAG);
> > > $c->addSelectColumn(ArticlePeer::TITRE_ARTICLE);
>
> > > $this->tagss = TagsPeer::doSelectRS($c);
>
> > > Sauf que du coup, php ne reconnait plus la méthode getId() (qui
> > > devrait renvoyer la valeur de TagsPeer::ID) . J'ai essayé de remplacer
> > > doSelectRS() par doSelect() et ça fonctionne, mais pour n résultats,
> > > ça me génère n+2 requêtes SQL, ce qui peut s'avérer horriblement
> > > lourd... :\
>
> > > On 25 nov, 15:05, gestadieu <[EMAIL PROTECTED]> wrote:
> > > > Tu peux faire un $c = new Criteria();
> > > > $c->clearSelectColumn()->addSelectColumn(tacolonneici);, etc...
>
> > > > il te suffit ensuite d'utiliser un doSelectRS().
>
> > > > On 25 nov, 07:06, Guillaume <[EMAIL PROTECTED]> wrote:
>
> > > > > Oui, j'ai essayé aussi ainsi, mais ça ne me convient pas. J'ai oublié
> > > > > de préciser qu'il faut que je récupère une valeur dans l'autre table
> > > > > correspondant à l'identifiant, or doSelect() ne me permet pas
> > > > > d'obtenir des valeurs de champs externes à ma connaissance.
>
> > > > > PS : j'ai déjà eu ma dose vendredi, je cuve là :-)
>
> > > > > On 24 nov, 22:47, Loïc Vernet <[EMAIL PROTECTED]> wrote:
>
> > > > > > Les méthodes doSelectJoinXXX() sont des méthodes prédéfines par
> > > > > > propel
> > > > > > mais tu peux tout simplement faires tes jointures "à la main"
>
> > > > > > $critetia->addJoin(tablePeer1ID, tablePeer2:TABLE1_ID);
> > > > > > ...
>
> > > > > > ++
>
> > > > > > PS: C'est pas bientôt fini de bosser un samedi soir ???? :P
>
> > > > > > ----- Message d'origine ----
> > > > > > De : Guillaume <[EMAIL PROTECTED]>
> > > > > > À : Symfony-fr <[email protected]>
> > > > > > Envoyé le : Samedi, 24 Novembre 2007, 21h50mn 06s
> > > > > > Objet : [symfony-fr] Jointure sur une clé primaire et non sur un
> > > > > > identifiant
>
> > > > > > Bonsoir,
>
> > > > > > En tant que tout débutant sur Symfony, je suis actuellement sur un
> > > > > > problème qui me rend complètement fou : j'ai beau essayer plein de
> > > > > > méthodes, rien ne fonctionne.
> > > > > > Je souhaite en fait simplement faire une jointure entre deux clés
> > > > > > primaires dans deux tables différentes.
>
> > > > > > J'ai utilisé la méthode doSelectJoinXXX() (à ce propos, j'ai bien
> > > > > > galèré pour trouver son fonctionnement, la doc n'est pas abondante à
> > > > > > ce sujet...), mais la jointure se fait d'office sur les identifiants
> > > > > > et je n'arrive pas à changer ce comportement alors que mon
> > > > > > schema.yml
> > > > > > déclare ces clés comme il faut.
>
> > > > > > Quelqu'un aurait-il une solution ? Merci.
>
> > > > > > --
> > > > > > Guillaume
>
> > > > > >
> > > > > > ___________________________________________________________________________
> > > > > > __
> > > > > > Ne gardez plus qu'une seule adresse mail ! Copiez vos mails vers
> > > > > > Yahoo! Mail
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "Symfony-fr"
de Google Groupes.
Pour transmettre des messages à ce groupe, envoyez un e-mail à
l'adresse [email protected]
Pour résilier votre abonnement à ce groupe, envoyez un e-mail à
l'adresse [EMAIL PROTECTED]
Pour afficher d'autres options, visitez ce groupe à l'adresse
http://groups.google.com/group/symfony-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---