2010-03-11 4 views
1
class A 
{ 
    public $property1; 
    public $objB; 

    public __construct(){ 
    $this->property1 = 'test'; 
    $this->objB = new B(); 
    } 
} 

class B 
{ 
    public $title; 
    public __construct(){ 
    $this->title = 'title1'; 
    } 

} 

maintenant je fais cela dans le fichier .phpsi une propriété d'objet est un autre objet, comment accéder à la propriété ou à la méthode de cette propriété d'objet dans smarty?

$a = new A(); 

dans mon tpl je veux afficher $ a-> objB-> Titre

Comment puis-je faire cela? J'ai essayé

$smarty->assign('a', $a); 

je ne peux pas le faire dans Smarty

{$a->objB->title} 

J'ai aussi essayé

$smarty->register_object('a', $a); 

je ne peux pas le faire dans Smarty

{a->objB->title} 

OU

{$a->objB->title} 

Veuillez nous aviser.

+1

Chaque fois que je lis ces messages intelligents, c'est pour moi comme "J'essaie de monter mon vélo à l'étage au 22e étage, quelqu'un peut-il aider". Eh bien, que diriez-vous "laisser le vélo se lever et marcher"? Pardon. – user187291

Répondre

1

Je ne pense pas que Smarty soutient cette opération, j'ai eu le même problème et résolu comme celui-ci

{assign var='myObject' value=$a->objB} 
{$myObject->title} 

Un peu long et compliqué, mais encore une solution.

Une autre solution pourrait être assignant le titre dans la partie php (mais toujours le même code long et désordonné)

Ou vous pouvez peut-être définir une fonction Smarty qu'il fait pour vous tout le temps dont vous avez besoin,

Questions connexes