smarty中的类对象数组

时间:2014-09-15 23:07:27

标签: php arrays 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: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抛出异常

  

可捕获的致命错误:类FilesDndDirectories的对象不能   在

中转换为字符串

感谢您提供的任何帮助

2 个答案:

答案 0 :(得分:1)

使用assign_by_ref()代替assign()或查看其中一个here示例。

答案 1 :(得分:0)

问题在于你的$ result变量。尝试做一个print_r($ result),看看你得到了什么。您只能显式传递名称/值对或包含名称/值对的关联数组。如果您的$ result var不适合该结构,则会产生错误。