2010-03-11 57 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側標題(但還是一樣長,凌亂的代碼)

或者你可以定義一個智者功能會爲你所有你需要的時候,

相關問題