【发布时间】:2014-09-15 23:07:27
【问题描述】:
我正在开发一个 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:300@sip-0-2-0.aculab.com.wav
[modifiedTime] => 2014-09-11T21:01:39.000Z
[fieSize] => 36036
)
[2] => FileInformation Object
(
[fileName] => record_message_from_sip:44123456789@sip-0-2-0.aculab.com.wav
[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:300@sip-0-2-0.aculab.com.wav
[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 的对象无法 在
中转换为字符串
【问题讨论】:
-
模板中
<tr>之间有什么东西吗?异常抛出了什么? -
不,目前没有。在
$smarty->assign("fileListing", $result);这一行抛出异常 -
您能否尝试使用
assign_by_ref()方法而不是assign()或查看所提供的here 示例之一? -
@marian0 谢谢这是我需要的。你能把它作为一个答案,我会接受它