将几个变量从Smarty传递给PHP函数

时间:2015-11-18 10:38:11

标签: php smarty

我们有一个与Smarty合作的商店系统。我需要将一些Smarty变量传递给PHP函数并获得返回。

我所知道的以及到目前为止所做的事情如下:

{$order_id|@get_order_total}

因此,它将Smarty变量“$order_id”传递给包含函数get_order_total($order_id)的包含的PHP文件,并向我显示此函数的返回。

现在我需要将3个变量传递给PHP函数。该函数例如如下所示:

handleDebit($order, $payCode, $insertId)

可悲的是,到目前为止,我还没有在聪明的文档中找到正确的东西。有没有人这样做过?

1 个答案:

答案 0 :(得分:1)

如果你真的需要从smarty模板中调用该函数,请将包装函数注册为smarty-plugin:

<?php
$smarty->registerPlugin("function","handleDebit", "handleDebitSmarty");

function handleDebitSmarty($params, $smarty)
{
  return handleDebit($params['order'], $params['payCode'], $params['insertId']); 
}

现在你可以将它用作聪明的标签:

{handleDebit order=$blah payCode=$blub insertId=$yeahh}

但是你应该考虑@JonSterling的建议并尝试找到一种方法,即控制器正在进行handleDebit - 调用,你只能处理模板中的结果/显示内容。