Массив объектов класса foreach в smarty

Я работаю над проектом PHP, где у меня есть массив объектов. Я хочу передать этот массив объектов в шаблон Smarty, который может зацикливаться и получать информацию из структуры.

Пример вывода массива объектов выглядит следующим образом:

Array
(
[0] => FilesAndDirectories Object
(
[parent] =>
[directory] => /
[files] => Array
(
[0] => FileInformation Object
(
[fileName] => test_wav.wav
[modifiedTime] => 2014-09-11T19:20:20.000Z
[fieSize] => 22332
)

[1] => FileInformation Object
(
[fileName] => record_message_from_sip:[email protected]
[modifiedTime] => 2014-09-11T21:01:39.000Z
[fieSize] => 36036
)

[2] => FileInformation Object
(
[fileName] => record_message_from_sip:[email protected]
[modifiedTime] => 2014-09-11T21:07:05.000Z
[fieSize] => 29796
)

)

)

[1] => FilesAndDirectories Object
(
[parent] => /
[directory] => my_directory_test
[files] => Array
(
)

)

[2] => FilesAndDirectories Object
(
[parent] => my_directory_test
[directory] => dir
[files] => Array
(
[0] => FileInformation Object
(
[fileName] => /record_message_from_sip:[email protected]
[modifiedTime] => 2014-09-12T20:36:05.000Z
[fieSize] => 44596
)

)

)

)

Ниже показано, как я храню вышеприведенный вывод

$fileManager = new FileManager();
$result = $fileManager->getFileListing();

$ result теперь будет содержать вышеуказанную структуру.

Затем я передаю $ result для присваивания переменной smarty следующим образом:

$smarty = new Smarty();
$smarty->setTemplateDir("templates");

$smarty->assign("fileListing", $result);
echo $smarty->fetch("directoryListing.tpl");

Файл шаблона smarty выглядит следующим образом:

<table>
{foreach $fileListing as $directory}
<tr>

</tr>
{/foreach}
</table>

Проблема в том, что я получаю исключение через Smarty, которое

Исправляемая фатальная ошибка: объект класса FilesAndDirectories не может
быть преобразован в строку в

Спасибо за любую помощь, которую вы можете предоставить

0

Решение

использование assign_by_ref() вместо assign() или отметьте один из представленных Вот Примеры.

1

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

Проблема в вашей переменной $ result. Попробуйте сделать print_r ($ result) и посмотрите, что вы получите. Вы можете только явно передавать пары имя / значение или ассоциативные массивы, содержащие пары имя / значение. Если ваша переменная $ result не соответствует этой структуре, она выдаст ошибку.

0

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