smarty插件返回数组


smarty plugin return array

我正在创建一个插件,该插件将数组返回到模板文件。我似乎无法将整个数组解析为模板文件。

插件功能。arraytest

function smarty_function_arraytest($params,Smarty_Internal_Template $template)
{
    $x = array("1"=>array("categories"=>"Action"));
     return $x
}

模板文件

{arraytest}

结果阵列

我似乎无法遍历模板文件中的数组。

如有任何帮助,我们将不胜感激。

感谢

smarty函数返回的任何内容都会直接得到输出,.tpl实际上从未得到数组,只有字符串值"array"。我已经很久没有使用Smarty了,所以这可能已经改变了,但我相信标准的方法是这样的:

function smarty_function_arraytest($params, $template)
{
    // check $params['out'] exists here
    $array = array("1"=>array("categories"=>"Action"));
    $template->assign($params['out'], $array);
}

然后称之为:

{arraytest out="arraytestValues"}
{foreach from=$arraytestValues key=k item=v}
   <p>{$k}: {$v}</p>
{/foreach}

当然,因为你有一个多维数组,你需要在它上面循环两次:

{arraytest out="arraytestValues"}
{foreach from=$arraytestValues key=k item=v}
   <p>{$k}: {$v}</p>
    {foreach from=$v key=sk item=sv}
        <p>{$sk}: {$sv}</p>
    {/foreach}
{/foreach}

也许它有帮助:

{assign var=arr value=arraytest}
{$arr....}

然后文档:http://www.smarty.net/docsv2/en/language.syntax.variables.tpl