我正在使用 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。
答案 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