- 1
[Opened] Requête et traitement
Posted by versus68 on 03/25/2009 20:00
Bonjour,
Tout d'abord, un grand merci aux developpeurs de Jelix. Je viens tous juste de finir un site avec Zend et pour l'instant, j'ai trouvé plus rapidemment ce que j'avais besoin sur jelix qu'avec Zend... Les zones, les templates, le CRUD en ligne de commande, c'est bien fait et c'est facile à appréhender.
Par contre, je bute sur une chose... Dans la continuité du module de news, j'aimerais modifier certains attributs avant de les afficher. Mon idée c'est de créer une zone qui affichera un aperçu des dernières news envoyer. Pour cela, j'aimerais limité la taille du texte et aussi changer le format de la date. Le problème c'est que je ne sais pas comment accéder aux enregistrements dans ma classe jZone.
Je suis bloqué là :
je récupère mes enregistrements :
$fact = jDao::get('plongee~news'); $conditions = jDao::createConditions(); $conditions->addItemOrder('date_news','desc'); $liste = $fact->findBy($conditions, 0, 4);
Puis là si j'essaie d'accéder à de modifier liste, Jelix me sort une erreur de ce type :
Cannot use object of type mysqlDbResultSet as array
Merci d'avance !
[Opened] Re: Requête et traitement
Posted by bballizlife on 03/26/2009 08:05
Il faudrait nous montrer comment tu modifie justement, vu que c'est sur ce point que tu obtiens une erreur ;)
N'importe comment c'est dans la doc
[Opened] Re: Requête et traitement
Posted by manooweb on 03/26/2009 08:27
Salut,
le resulat d'une requete est bien un objet de type mysqlDbResulset et non pas un tableau. Par contre, comme c'est indiqué dans la doc de l'API jelix cette classe hérite de la classe jDbResulset qui, elle, implemente l'interface Iterator.
L'iterateur te permet d'accèder à ta liste dans un simple foreach
foreach ($liste as $elementListe) { $maVariable = $elementListe->unAttribut $elementListe->unAttribut = maValeur; }
En sachant que l'attribut correspond à un champ de ta requete SQL (du DAO puisque tu l'utilises)
C'est exactement comme tu as du le faire dans le template pour afficher les news avec le plugin {foreach ...} ... {/foreach}
Pour les dates, regardes du côté du plugin/modificateur de template jDateTime il existe déjà un certain nombre de format.
Pour réduire la taille du texte, il y a un plugin en prévision truncateHtml
mais, a priori, il est en attente de l'auteur pour la revue de code :-)
Manu
- 1