我将对象传递给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>
这会导致无效字符'&gt;'的警告。我怎么解决这个问题?
我用这个类进行测试:
class Contacts
{
public $id = 1;
public $name = 'Mada';
public $email = 'mada@yahoo.com';
public $phone = 123456;
}
答案 0 :(得分:1)
使用
$smarty->assign_by_ref('contact',$contact);
这将允许您以您期望的方式访问。
使用register_object()也是一个选项,允许您限制模板中可以使用的内容,但这意味着不同的模板格式(没有初始$)。
答案 1 :(得分: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>
此外,您不需要调用此方法
$smarty->assign('contact',$contact);