我们有一个与Smarty合作的商店系统。我需要将一些Smarty变量传递给PHP函数并获得返回。
我所知道的以及到目前为止所做的事情如下:
{$order_id|@get_order_total}
因此,它将Smarty变量“$order_id
”传递给包含函数get_order_total($order_id)
的包含的PHP文件,并向我显示此函数的返回。
现在我需要将3个变量传递给PHP函数。该函数例如如下所示:
handleDebit($order, $payCode, $insertId)
可悲的是,到目前为止,我还没有在聪明的文档中找到正确的东西。有没有人这样做过?
答案 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
- 调用,你只能处理模板中的结果/显示内容。