分配自定义函数返回值并在循环中使用

时间:2010-07-06 08:01:02

标签: php smarty

我正在使用 CodeIgniter 框架与 Smarty 并使用自定义Smarty函数返回配置项:

{ci_config name='sitemap'}

此调用会返回包含网站sitemap的多维数组

$config['sitemap'] = array('dashboard' => array('uri'=>'dashboard',
                                                'title'=>'Dashboard'),
                           'photos' => array('uri'=>'photos',
                                             'title'=>'Photos'));

注意:这是一个示例数组,实际数组将是多级的

我想循环此数组,但我如何在循环构造中使用返回值?

虽然错了,但这就是我想要实现的目标:

{foreach {ci_config name='sitemap'} as $node} 

<p>{$node.uri}</p> 

{/foreach} 

有什么建议吗?谢谢!

注意:我正在使用最新的Smarty 3 RC2。

2 个答案:

答案 0 :(得分:2)

来自Smarty论坛的用户'mohrt'发布了以下好消息:

{ci_config name="sitemap" assign="map"} 
{foreach $map as $node} 

<p>{$node.uri}</p> 

{/foreach}
  

还要确保你的ci_config插件   支持assign属性

http://www.smarty.net/forums/viewtopic.php?t=17655

只需确保使用Smarty实例在自定义函数或插件中分配变量。

谢谢!

答案 1 :(得分:0)

使用section循环遍历数组而不是foreach。文档中应该有一些示例可以帮助您处理循环问题 http://www.smarty.net/manual/en/language.function.section.php