在smarty中分配对象数组

时间:2013-11-14 09:05:48

标签: php smarty

我想在smarty中使用一个循环来读取稍后我将从控制器传递的对象值。

{foreach from=$foo->bars item=bar}
    {$bar->product->name}
    {$bar->code}
{/foreach}

为了初始化这个,我在smarty文件中写了以下代码:

{php}
    $bar1->product->name =  "prod1";
    $bar1->code = "BC5E";

    $bar2->product->name =  "prod2";
    $bar2->occasionName = "XW9D";

    $this->assign($foo->bars, array($bar1,$bar2);
{/php}

但是这给了我一个错误,这是在Smarty中创建对象的正确方法吗?

2 个答案:

答案 0 :(得分:1)

$this->assign($foo->bars, array($bar1,$bar2));

您忘了关闭上一个)

答案 1 :(得分:0)

你可以用php页面上的对象执行所有执行,然后你可以将最终数组分配给smarty并在.tpl页面上轻松使用,这是最好的方法。

尽量不要处理.tpl页面上的数据处理php页面上的所有数据并将其分配给.tpl然后只显示它。

Smarty是一个模板引擎,主要用于视图(演示)。

在.php创建数组输出上编写foreach循环并分配给tpl。