簡體   English   中英

Smarty對象語法

[英]Smarty Object Syntax

我注冊了一個對象,我正在嘗試獲取以下信息:

 stdClass Object (
         [test] => test
         [users] => stdClass Object (
                 [createSave_email_subject] => - New
 User Account
                 [createSave_email_pass] => The user
 was created, and an email was sent to
 them!
         ) )

智慧代碼:

 Works: 
{language->test}   

Doesn't Work:
{language->users->createSave_email_subject}
{language[users]->createSave_email_subject}
{language.users->createSave_email_subject}
{language->users.createSave_email_subject}
{language->users[createSave_email_subject]}

我使用以下代碼為此構建了一個測試用例:

$test = json_decode('{"test":"test","users":{"createSave_email_subject":"new user account","createSave_email_pass":"The user was created, and an email was sent to them!"}}');

$smarty->assign('testing',$test);

var_dumped時$ test是這個

object(stdClass)#8 (2) {
  ["test"]=>
  string(4) "test"
  ["users"]=>
  object(stdClass)#7 (2) {
    ["createSave_email_subject"]=>
    string(16) "new user account"
    ["createSave_email_pass"]=>
    string(52) "The user was created, and an email was sent to them!"
  }
}

在TPL我放

{$testing->users->createSave_email_subject}

而且沒有問題。 這是使用Smarty 2.6.23

您缺少美元符號,應該使用

{$language->test}

但是不確定是否是問題所在,因為我不認為smarty會使用您提供的語法輸出任何內容。 您的測試用例也不是很可靠,使用類似的方法會更安全

array('test' => 'worked');

鍵和值不同的地方。 通過測試,smarty可能正在打印密鑰,而您不會知道其中的區別。

使用debug_print_var可以幫助您確定問題。 例如

$language: {$language|@debug_print_var}
users: {$language->users|@debug_print_var}
cse_subject: {$language->users->createSave_email_subject|@debug_print_var}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM