将一个聪明的foreach循环变量传递给php代码

时间:2012-12-28 10:39:30

标签: php smarty

我在smarty中有foreach循环:

{foreach from=$clients item=client}
    <tr class="{cycle values="erow,"} elements">
        <td class="tdcenter no-label">{$client->id}</td>
        <td>{$client->name}</td>
        <td>{$client->email}</td>
        <td>{$client->phone}</td>
        <td>{php} echo get_client_profit($client->name);{/php}</td>
    </tr>
 {/foreach}

我需要将smarty变量{$client->name}传递给php函数get_client_profit。我该怎么办?有可能吗?

2 个答案:

答案 0 :(得分:0)

试试这个:

{foreach from=$clients item=client}
    <tr class="{cycle values="erow,"} elements">
        <td class="tdcenter no-label">{$client->id}</td>
        <td>{$client->name}</td>
        <td>{$client->email}</td>
        <td>{$client->phone}</td>
        <td>
{assign var="clientname" value=$client->name }
{php} echo get_client_profit($smarty->get_template_vars('clientname'));{/php}</td>
        </tr>
     {/foreach}

答案 1 :(得分:0)

我在我的开发机器上做了这个并且它可以工作:

{foreach from=$clients item=client}
<tr class="{cycle values="erow,"} elements">
    <td class="tdcenter no-label">{$client->id}</td>
    <td>{$client->name}</td>
    <td>{$client->email}</td>
    <td>{$client->phone}</td>
    <td>{get_client_profit($client->name)}</td>
 </tr>
 {/foreach}

只需在没有{php}标记的情况下调用该函数