2010-01-29 135 views
2

我有一個將對象傳遞給smarty標籤的問題。我有以下代碼:將php對象傳遞給smarty

$contact = new Contacts; 
$smarty = new Smarty; 
$smarty->assign('contact',$contact); 

在test.htpl:

<html> 
<head> 
    <title>{$title}</title> 
</head> 
<body> 
    id: {$contact->id} <br/> 
    name: {$contact->name} <br/> 
    email: {$contact->email} <br/> 
    phone: {$contact->phone} <br/> 
</body> 
</html> 

這導致無效字符的警告 '>'。我該如何解決這個問題?

我用這個類來進行測試:

class Contacts 
{ 
public $id = 1; 
public $name = 'Mada'; 
public $email = '[email protected]'; 
public $phone = 123456; 
} 
+0

你能向我們展示我們在聯繫人類中的什麼嗎? – RJD22 2010-01-29 12:08:33

+0

谷歌搜索「聰明的模板對象」導致http://www.smarty.net/manual/en/advanced.features.php成爲第一個結果。 – zneak 2010-01-29 12:23:13

回答

0

通過以下操作應該工作

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

調用它那麼這樣應該工作

<html> 
<head> 
    <title>{$title}</title> 
</head> 
<body> 
    id: {$contact->id} <br/> 
    name: {$contact->name} <br/> 
    email: {$contact->email} <br/> 
    phone: {$contact->phone} <br/> 
</body> 
</html> 

還那麼你不」 t需要調用此方法

$smarty->assign('contact',$contact); 
1

使用

$smarty->assign_by_ref('contact',$contact); 

這將允許你在你所期望的方式訪問。

使用register_object()也是一個選項,並允許您限制可以從模板中使用的內容,但這意味着不同的模板格式(不包含最初的$)。