CakePHP4.2.x执行bake生成代码时Twig报Class 'templates'未找到错误
CakePHP 4.2.x 执行bake时Twig报
Class "templates" not found的解决方案 错误诱因
- 版本不兼容:你安装的
cakephp/twig-view版本与CakePHP 4.2.x、Twig 3.x的适配规则冲突。Twig 3.x调整了模板编译后的父类命名逻辑,旧版twig-view会错误将编译生成的模板类父类写为templates,而非正确的Twig\Template类。 - 配置错误:全局Twig配置中错误修改了
template_base_class参数,或者bake渲染时错误加载了站点前端的自定义Twig配置,覆盖了bake自带的渲染规则。
修复方案
临时快速解决(优先推荐)
bake本身不需要依赖Twig渲染,直接指定bake用原生PHP视图即可,不影响项目前端使用Twig:
- 打开项目
config/app_local.php文件,添加如下配置:
return [ // 其他现有配置保留 'Bake' => [ 'viewClass' => \Cake\View\View::class, ], ];
- 重新执行之前的bake命令,即可正常生成模型、控制器等代码,生成完成后不需要修改该配置也不影响项目正常运行。
永久兼容修复
- 执行composer命令升级twig-view到适配CakePHP 4.2的最新稳定版:
composer update cakephp/twig-view - 检查你的Twig自定义配置,确认没有修改
template_base_class参数,如果有修改,将值改为Twig\Template::class即可。
内容的提问来源于stack exchange,提问作者chriss
相关产品推荐
相关产品推荐

