首页 文章

从tpl文件调用smarty插件函数时出错

提问于
浏览
0

用下面的代码创建了一个简单的smarty插件

/*
 * 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');
}

此函数从模板文件中调用

访问页面时,它将返回以下错误传递给smarty_function_assignmenu()的参数1必须是Smarty_Internal_Template的实例,给定数组,在/var/www/myproject/runtime/Smarty/compile/cda404646b2153274a9e77f736531c5dc7e6f91c_0.file.sample.tpl中调用.php在第31行并定义

我和yii2一起使用smarty 3 . 任何帮助表示赞赏

1 回答

  • 0

    Smarty插件函数期望数组作为第一个参数 . 所以定义应该是

    function smarty_function_assignmenu($paramArray,Smarty_Internal_Template $smarty)
    {
    
        $smarty->assign('test', '123');
    }
    

    即使没有要传递的参数,函数定义也应该包含一个数组作为第一个参数 .

相关问题