使用以下代码
创建了一个简单的智能插件/*
* Smarty plugin
* -------------------------------------------------------------
* File: function.assignmenu.php
* Type: function
* Name: assign
* Purpose: assign a value to a template variable
* -------------------------------------------------------------
*/
functionality-to-smarty-w-plugins/
function smarty_function_assignmenu(Smarty_Internal_Template $smarty)
{
//$template->assign($params['var'], $params['value']);
$smarty->assign('test', '123');
}
此函数从模板文件调用为 {} assignmenu {测试}
访问该页面时,将返回以下错误 传递给smarty_function_assignmenu()的参数1必须是Smarty_Internal_Template的实例,给定数组,在第31行的/var/www/myproject/runtime/Smarty/compile/cda404646b2153274a9e77f736531c5dc7e6f91c_0.file.sample.tpl.php中调用并定义
我在yii2上使用smarty 3。任何帮助表示赞赏
答案 0 :(得分:0)
Smarty插件函数期望数组作为第一个参数。所以定义应该是
function smarty_function_assignmenu($paramArray,Smarty_Internal_Template $smarty)
{
$smarty->assign('test', '123');
}
即使没有要传递的参数,函数定义也应该包含一个数组作为第一个参数。