Categories > TinyButStrong general (FR) >

Acceder aux propriétés d'objets ?

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Jakovson
Date: 2007-03-30
Time: 11:05

Acceder aux propriétés d'objets ?

Bonjour,

Je n'arrive pas a réaliser la chose suivante :
Jai une classe BasePost, et une sous classe Post.

BasePost propose la méthode getId(), qui renvoie l'id de l'objet dans la base de données.

Dans mon code PHP je dispose d'un tableau d'objets Post ($posts) que je souhaiterais afficher dans un template, du genre :
--PHP--
$TBS->MergeBlock('block_posts',$posts) ;
--HTML--
<tr>
<td>[block_posts.id;block=tr]</td>
</tr>

Malheureusement il me dit que la méthode ou propriété n'existe pas...
J'ai bien vu qu'il y avait peut etre une façon de faire un peu spéciale avec les objets (ObjectRef tout ça), mais je n'ai pas réussi à récupérer mon id...

Est ce un probleme de TBS ? Un problème de méthode dans une classe mère ?

Merci de votre aide :)
By: Skrol29
Date: 2007-03-30
Time: 11:28

Re: Acceder aux propriétés d'objets ?

Ben d'après ta description, le champ devrait plutôt être :
[block_posts.getId;block=tr]
By: Jakovson
Date: 2007-03-30
Time: 12:44

Re: Acceder aux propriétés d'objets ?

Oui en effet.... c'est bien ce que j'ai essayé (désolé pour l'erreur).

Donc il est bien possible d'acceder dans le template aux propriétés et méthodes d'un objet (et aux methodes héritées d'une classe mère) de la meme façon qu'on accèderais au valeurs d'un tableau ?

C'est a dire que la ou je ferais en PHP monObjet->propriété, ou monObjet->maMéhtode(param), je peux faire [nom_block.propriété;...] ?

Je n'ai pas besoin d'utiliser les références etc ?

Si c'est censé marcher comme cela, c'est que j'ai du faire un erreur, mais je ne vois pas ou !
By: Jakovson
Date: 2007-03-30
Time: 12:44

Re: Acceder aux propriétés d'objets ?

Oui en effet.... c'est bien ce que j'ai essayé (désolé pour l'erreur).

Donc il est bien possible d'acceder dans le template aux propriétés et méthodes d'un objet (et aux methodes héritées d'une classe mère) de la meme façon qu'on accèderais au valeurs d'un tableau ?

C'est a dire que la ou je ferais en PHP monObjet->propriété, ou monObjet->maMéhtode(param), je peux faire [nom_block.propriété;...] ?

Je n'ai pas besoin d'utiliser les références etc ?

Si c'est censé marcher comme cela, c'est que j'ai du faire un erreur, mais je ne vois pas ou !
By: Skrol29
Date: 2007-03-30
Time: 12:53

Re: Acceder aux propriétés d'objets ?

Ben il y a plusieurs éthodes possibles en fonction de ce que tu cherche à faire.
Si $posts contient déjà une tableau d'objets, il n'est pas nécessaire de passer par ObjectRef pour l'utiliser dans MergeBlock().

Quelle version de TBS utilises-tu ? Quelle version de PHP ?
Peux-tu vérifier le contenu de $post avec un var_export() ?
By: Jakovson
Date: 2007-04-02
Time: 16:09

Re: Acceder aux propriétés d'objets ?

Salut,

Je ne vais pas pouvoir répondre tout de suite car je travaille sur autre chose depuis vendredi... mais je repasserais surement d'ici quelques jours.

Le problème ne venait peut etre pas de TBS (puisque l'accès au méthodes et propriétés d'objet doit fonctionner) mais plutot du framework (Symfony) qui soccupe de gérer la méthode que jappelais (dans le template).

Mais il faut que je vérifie cela...

Merci en tous cas pour ton aide !