我需要在smarty模板中从其他一维数组创建一个新数组。 那么,在模板文件中创建数组的最佳可能性是什么。
谢谢, 萨钦
答案 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部分只负责显示数据。我建议您重新考虑应用程序,以便它允许您处理模型中的数据并将其传递给仅在视图中显示。