必须安装并启用think-view模板引擎,否则assign赋值无效;需执行composer require topthink/think-view,配置view.php中'type' => 'think',模板文件须存于app/view/且命名与方法一致(如index.html对应index()),否则报“模板不存在”。

刚写好一个ThinkPHP6控制器,返回的却是空白页面或“模板不存在”错误,根本看不到传过去的变量值——这是因为控制器和视图之间缺少明确的数据绑定路径和渲染指令,不是写了assign就自动生效。
确认模板引擎已安装并启用
打开终端,进入项目根目录,执行:composer require topthink/think-view。这一步不可跳过,ThinkPHP6默认不带业务级模板引擎,只保留PHP原生引擎用于错误页渲染。
安装后检查vendor/topthink/think-view目录是否存在;若不存在,说明安装失败,【必须重装,否则后续所有视图操作均无效】。
验证是否启用:打开config/view.php,确认'type' => 'Think'(不是'php'),这是启用think-template引擎的关键标识。
创建控制器并传递数据
在app/controller下新建Index.php,内容如下:
<?php <br>namespace app\controller;<br>use think\Controller;<br>class Index extends Controller<br>{<br> public function index()<br> {<br> return view('index', ['title' => '欢迎来到TP6首页', 'users' => ['张三', '李四']]);<br> }<br>}
注意:这里用view()快捷函数替代View::assign() + View::fetch()组合,更简洁且自动完成赋值与渲染两步;【不能只写assign()却不调用fetch(),否则页面无输出】。
编写对应视图文件
在app/view目录下新建index.html文件,内容为:
<br><br><title>{$title}</title><br><br><h1>{$title}</h1><br>
- {$user}
模板中变量用{$xxx}语法,不是<?php echo $xxx ?>;{volist}是think-template专属标签,PHP原生引擎不识别。
文件必须放在app/view/下,且名称与控制器方法名一致(如index() → index.html),否则view('index')会找不到模板。
访问页面并验证渲染结果
启动内置服务器:php think run,或通过Web服务器访问http://localhost:8000/index/index(单应用模式下URL为/控制器/方法)。
若看到标题“欢迎来到TP6首页”和两个列表项,说明数据已成功传递并渲染;若报错“模板文件不存在”,请立即检查:【app/view/index.html 文件是否存在、大小写是否完全匹配、文件权限是否可读】。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











