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

Pass several variables from Smarty to PHP function

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

到目前为止我所知道的和所做的如下:

{$order_id|@get_order_total}

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

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

handleDebit($order, $payCode, $insertId)

遗憾的是,到目前为止我还没有在 smarty 文档中找到正确的东西。有人做过吗?

如果您确实需要从 smarty 模板中调用函数,请将包装函数注册为 smarty-plugin:

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

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

现在您可以将它用作 smarty 标签:

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

但是您应该考虑@JonSterling 的建议,并尝试找到一种方法,让控制器执行 handleDebit-调用,而您只在模板中处理 results/display-stuff。