如何设置ThinkPHP自定义模板函数?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1037个文字,预计阅读时间需要5分钟。
ThinkPHP 6 的模板引擎(ThinkTemplate)不支持直接在视图中调用任意的 PHP 函数。必须显式注册函数才能使用。注册方法如下:
注册入口在 app/provider.php 或服务提供者中,推荐统一在 app/provider.php 添加:
return [ 'think\template\driver\Think' => [ 'function' => [ 'date_format' => '\app\common\helper\DateFormat::format', 'truncate' => '\app\common\helper\StrHelper::truncate', ], ], ];
-
function键下的数组必须是「函数名」=>「可调用字符串」的映射,不能是闭包或匿名函数 - 值必须是完整命名空间路径,且该类方法需为
public static - 如果函数逻辑简单,也可直接指向全局函数(如
'my_echo' => 'my_echo'),但需确保该函数已加载(建议放在app/common/functions.php并在composer.json的autoload.files中声明)
为什么 {:my_func($var)} 总是报错“undefined function”
常见原因是:函数注册了,但没生效;或者函数本身不可被模板引擎安全调用。
本文共计1037个文字,预计阅读时间需要5分钟。
ThinkPHP 6 的模板引擎(ThinkTemplate)不支持直接在视图中调用任意的 PHP 函数。必须显式注册函数才能使用。注册方法如下:
注册入口在 app/provider.php 或服务提供者中,推荐统一在 app/provider.php 添加:
return [ 'think\template\driver\Think' => [ 'function' => [ 'date_format' => '\app\common\helper\DateFormat::format', 'truncate' => '\app\common\helper\StrHelper::truncate', ], ], ];
-
function键下的数组必须是「函数名」=>「可调用字符串」的映射,不能是闭包或匿名函数 - 值必须是完整命名空间路径,且该类方法需为
public static - 如果函数逻辑简单,也可直接指向全局函数(如
'my_echo' => 'my_echo'),但需确保该函数已加载(建议放在app/common/functions.php并在composer.json的autoload.files中声明)
为什么 {:my_func($var)} 总是报错“undefined function”
常见原因是:函数注册了,但没生效;或者函数本身不可被模板引擎安全调用。

