2010-03-11 60 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'; 
    } 

} 

所以现在我做到这一点,在我的.tpl的PHP文件如果一个对象属性是另一个对象,我如何访问smarty中的对象属性的属性或方法?

$a = new A(); 

我想显示$ A-> objB->标题

怎么做呢?我试图

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

我不能在智者做到这一点

{$a->objB->title} 

我也尝试

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

我不能在智者做到这一点

{a->objB->title} 

OR

{$a->objB->title} 

请指教。

+1

每次我读这些聪明的帖子,对我来说就像“我想骑自行车上楼到22楼,任何人都可以帮忙”。那么,让“让自行车站立并走路”如何?抱歉。 – user187291 2010-03-11 10:01:24

回答

1

我不认为Smarty的支持操作,我有同样的问题,解决这样的

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

一点点长而凌乱,但仍然是一个解决方案。

另一种解决方案可能会被分配在PHP侧标题(但还是一样长,凌乱的代码)

或者你可以定义一个智者功能会为你所有你需要的时候,

相关问题