Php 如何在smarty中循环通过对象

Php 如何在smarty中循环通过对象,php,object,smarty,Php,Object,Smarty,我有一个脚本正在将对象数组传递给smarty,如下所示: $smarty->assign('results', $user->results()); 该数组如下所示: Array ( [0] => stdClass Object ( [id] => 1 [agency_name] => Agency #1 [created_date] => 2015-03-25 20:23:44 ) [1]

我有一个脚本正在将对象数组传递给smarty,如下所示:

$smarty->assign('results', $user->results());
该数组如下所示:

Array
(
[0] => stdClass Object
    (
        [id] => 1
        [agency_name] => Agency #1
        [created_date] => 2015-03-25 20:23:44
    )

[1] => stdClass Object
    (
        [id] => 2
        [agency_name] => gggg
        [created_date] => 2015-03-25 21:26:06
    )

)
{foreach from=$results item=result}
{$result->id}
{/foreach}
如何使用smarty在该对象数组中循环?我试过这样的东西,但运气不好

{section name="i" loop=$result}
{$result[i]->id}
{/section}
有什么想法吗


谢谢

//在smarty中,您可以像这样在阵列中循环:

Array
(
[0] => stdClass Object
    (
        [id] => 1
        [agency_name] => Agency #1
        [created_date] => 2015-03-25 20:23:44
    )

[1] => stdClass Object
    (
        [id] => 2
        [agency_name] => gggg
        [created_date] => 2015-03-25 21:26:06
    )

)
{foreach from=$results item=result}
{$result->id}
{/foreach}

//您还可以在循环结束之前使用“key=xx”和“{foreachelse}”,以防数组中没有任何内容。

我使用smarty assign_by_ref使其工作

$smarty->assign_by_ref('object', $object)

是的,我知道我可以在标准数组上进行foreach,但是在对象数组上呢?我尝试了上面的代码,但不起作用。请尝试使用{foreach from=$results key=I item=result}{$result[I]->id}{/foreach}相同的结果。也许我必须在smarty中以不同的方式分配对象?如果不使用[I]键,则第一个示例应该可以使用。Smarty应该很好地理解stdClass,它只是将其转换为一个数组,因为它最初是一个数组。你得到的是什么错误我没有得到错误,只是没有输出,但我可以看到它在两行上循环,有两行,这就是为什么我不能计算出来。