2017-04-17 80 views
0

創建了一個簡單的Smarty插件與下面的代碼錯誤同時呼籲從TPL文件中的智者插件功能

/* 
* 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的實例,該實例在/var/www/myproject/runtime/Smarty/compile/cda404646b2153274a9e77f736531c5dc7e6f91c_0.file.sample.tpl中給出第31行的.php和d efined

我正在用yii2使用smarty 3。任何幫助表示讚賞

回答

0

Smarty插件函數期望一個數組作爲第一個參數。因此,定義應該是

function smarty_function_assignmenu($paramArray,Smarty_Internal_Template $smarty) 
{ 

    $smarty->assign('test', '123'); 
} 

即使沒有參數傳遞,函數定義應包含數組作爲第一個參數。

相關問題