Как назначить массив объектов в файле шаблона smarty

У меня есть массив объектов stdclass.
Как я могу назначить его на шаблон Smarty?

Я пытался сделать это:

$smarty->assign( 'objects', $x->getAllObjects() );

но результатом является ошибка:

Catchable fatal error: Object of class Object could not be converted to string

Спасибо

редактироватьЯ тоже пробовал

$smarty->registerObject( 'objects', $x->getAllObjects() );

и в файле шаблона я сделал:

{foreach from=$objects item=o}
{$o}
{/foreach}

но я получаю уведомление:

Notice: Undefined index: objects

и я не могу получить доступ к элементам objects массив.

0

Решение

Мы не знаем, каков твой $x а также getAllObjects() метод.

Однако следующий код для назначения объектов для Smarty работает без проблем.

PHP-файл:

class X
{

private $_objects;

public function __construct()
{
$a = new StdClass();
$a->name = 'John';

$b = new stdClass();
$b->name = 'Tom';

$this->_objects[] = $a;
$this->_objects[] = $b;
}

public function getAllObjects()
{
return $this->_objects;
}}

$x = new X();

$smarty->assign('objects', $x->getAllObjects());

Smarty файл:

{foreach from=$objects item=o}
{$o->name}
{/foreach}
1

Другие решения

Это зависит от вашей умной версии.

Но, глядя на сообщение об ошибке, вам может потребоваться сделать следующее

$smarty->register_object('objects', $x->getAllObjects());
0

$x->getAllObjects() вероятно возвращает объект.

Вы можете привести его к строке:

$ string = (string) $x->getAllObjects();

0
По вопросам рекламы [email protected]