Smarty Object Синтаксис - PullRequest
       2

Smarty Object Синтаксис

0 голосов
/ 17 ноября 2010

Я зарегистрировал объект, и я пытаюсь получить следующее:

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

Код Smarty:

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

Ответы [ 2 ]

2 голосов
/ 18 ноября 2010

Я построил тестовый пример для этого, используя этот код:

$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);

$ test это когда var_dumped

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

1 голос
/ 18 ноября 2010

Вы пропускаете знаки доллара, вы должны использовать

{$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}
...