在Smarty foreach中使用插件函数

时间:2013-10-22 06:09:02

标签: php smarty

我最近一直在尝试使用Smarty(第一次使用这种东西),我有一个简单的问题我无法理解......

我为Smarty创建了一个名为 get_users()的函数,所以它是 {get_users} 进入我的.tpl

我想做一些这些“get_users”,所以它看起来像这样

{foreach get_users as $user}
magic
{/foreach}

现在,我的问题是......因为这不起作用,我应该如何处理这个问题?

谢谢!

2 个答案:

答案 0 :(得分:0)

您可能应该在函数内部使用$ smarty-> assign(...)将结果返回给变量,然后编写如下内容:

{get_users var=user_list}

{foreach $user_list as $user}
....
{/foreach}

阅读http://www.smarty.net/docs/en/plugins.functions.tpl

答案 1 :(得分:0)

首先,您的插件应该在迭代之前将users变量分配给模板。这可以这样做:

function smarty_function_get_users($params, $smarty)
{
    ..... // your stuff goes here       
    $users = array(); // get your users data here
    $smarty->assign($params['users'], $users); 
}

然后你可以像这样迭代它:

{get_users users=users}
{foreach from=$users item=user}
    {$user}
{/foreach}