Smarty php nesnesini iletin

2 Cevap php

Ben smarty etiketine nesnesini ileterek ile bir sorunu var. Ben aşağıdaki kodu vardır:

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

Test.htpl in:

<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>

Bu '>' geçersiz bir karakter bir uyarı yol açar. Bunu nasıl çözebilirim?

Ben test için bu sınıf kullanılır:

class Contacts
{
 public $id = 1;
 public $name = 'Mada';
 public $email = 'mada@yahoo.com';
 public $phone = 123456;
}

2 Cevap

Kullanım

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

Bu size beklediğiniz şekilde erişim sağlayacak.

Register_object Kullanma () da bir seçenek olduğunu ve şablondan kullanılabilecek ne kısıtlamak için izin verir, ama bu farklı bir şablon biçimi (hayır başlangıç ​​$) anlamına gelir.

Aşağıdaki çalışma gerekir yaparak

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

Bu şekilde çağrılması sonra çalışması gerekir

<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>

Ayrıca daha sonra bu yöntemi çağırmak gerekmez

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