在smarty模板中创建一个数组?

时间:2012-01-19 15:57:00

标签: php smarty

我需要在smarty模板中从其他一维数组创建一个新数组。 那么,在模板文件中创建数组的最佳可能性是什么。

谢谢, 萨钦

5 个答案:

答案 0 :(得分:26)

Smarty3允许您{$var = ['foo' => 'bar', 'sub' => [1, 2, 3]]}{$var.foo = 'other'}

如果这些选项不够,请写一个plugin function

答案 1 :(得分:11)

在过去,我使用了两种方法 - 一种邪恶的方法 - 一种很脏的方法 - 在tpl中快速分配一个数组:

{* Am I evil? *}
{php}
    $array = array("cat", "dog", "rabbit");
    $this->assign("myArray", $array);
{/php}

{* Am I dirty? *}
{assign var='myArray' value=','|explode:"cat,dog,rabbit"}

两者都会导致您的数组在模板中可用,以构建一个简单的循环。无论如何,我总是这样改变我的代码,所以我根本不需要这些东西。

答案 2 :(得分:7)

实际上很简单:

{assign 'myArray' ['cat', 'dog', 'rabbit']}

答案 3 :(得分:1)

我建议不要这样,但是这个插件允许这样:http://smarty.incutio.com/?page=set

答案 4 :(得分:1)

从MVC的角度来看,它的View部分只负责显示数据。我建议您重新考虑应用程序,以便它允许您处理模型中的数据并将其传递给仅在视图中显示。