- 1
[Opened] property virtuel dans mon dao
Posted by messica on 11/05/2009 10:08
Bonjour tout le monde, j'avais deja explique mon pb sur le chat mais je n ai pas pas compris les solutions donnees.
J ai creer un property virtuel dans mon dao memo, cette table n est pas une table de user, mais j ai besoin d ajouter le champs login afin apres de faire une boucle sur le login. Maintenant j ai client_id dans ma dao memo, est-ce que je pourrait faire un findbyClient_id puis faire un each par client_id ?
[Opened] Re: property virtuel dans mon dao
Posted by messica on 11/05/2009 10:11
[Opened] Re: property virtuel dans mon dao
Posted by messica on 11/05/2009 10:32
Je vais reformuler ma question, est-il possible de faire un find sur un record mais de faire une selection par colonne et non par ligne ?
[Opened] Re: property virtuel dans mon dao
Posted by laurentj on 11/05/2009 14:55
je vais résumé ce qui s'est dit sur IRC.
déjà, dans jAuth, la propriété login est une clé, donc on ne peut pas avoir une propriété login qui ne soit pas un champs dans la table cible. Sinon, cela pause en efffet des problèmes lors de l'appel de jAuth pour ajouter ou retirer des utilisateurs (vu que dans le cas de messica, ce champs est en lecture seule).
ensuite, pour une "selection par colonne", il faut soit utiliser un autre DAO qui map que sur les colonnes que l'on veut, soit faire une requete SQL "à la main" avec jDb. Mais en aucun cas il ne faut faire une méthode "PHP" dans le dao, qui ne selectionnerai que quelques colonnes, car alors le ou les enregistrements renvoyés ne correspondraient pas à ce qui est specifié dans le dao, ce qui est donc incohérent avec le pattern DAO.
à noter que renvoyer tout les champs ou seulement quelques uns, ça revient quasi au même au niveau des performances, sauf si on a vraiment beaucoup de champs (plusieurs dizaines), ou que le résultat renvoi beaucoup de lignes (plusieurs milliers). Donc faire un findAll() sur le dao en question n'est pas un souci dans la majorité des cas.
- 1