cakephp 4 从 3.9 迁移到 4 后出现路径错误

问题描述 投票:0回答:1

我按照步骤将 CakePHP 3.9 迁移到 4,前端工作正常,但管理不正常,这意味着我有一个 /site 路径和一个 /site/admin,在检查日志后我意识到 Cake 仍然在 /src 文件夹中查找管理模板(仅适用于 /admin),但前端路由(/site)不会发生这种情况,有任何线索吗?

2024-01-09 03:52:34 错误:[Cake\View\Exception\MissingElementException] 无法找到元素文件

structure/admin/head.php

搜索了以下路径:

  • /var/www/site/plugins/myplugin/templates/Admin/element/structure/admin/head.php
  • /var/www/site/plugins/myplugin/templates/element/structure/admin/head.php
  • /var/www/site/src/Template/Admin/element/structure/admin/head.php
  • /var/www/site/src/Template/element/structure/admin/head.php
  • /var/www/site/vendor/cakephp/cakephp/templates/Admin/element/structure/admin/head.php
  • /var/www/site/vendor/cakephp/cakephp/templates/element/structure/admin/head.php
    在 /var/www/site/vendor/cakephp/cakephp/src/View/View.php 第 710 行

我已经像这样更新了app.php(遵循官方文档):

return [
    'App' => [
        'encoding' => 'UTF-8',
        'namespace' => 'App',
        'paths' => [
            'plugins' => [ROOT . DS . 'plugins' . DS],
            'templates' => [ROOT . DS . 'templates' . DS],
            'locales' => [RESOURCES . 'locales' . DS],
            // 'templates' => [APP . 'Template' . DS],
            // 'locales' => [APP . 'Locale' . DS],
        ],
    ],
cakephp-4.x
1个回答
0
投票

已修复!我没有意识到插件配置也需要更新(一一更新),这意味着未能通过“发现模板路径过程”的插件需要与 app.php (文档没有提及这个问题):

这有效! 文件:config/sites/myplugin/local.php

  'paths' => [
            // 'plugins' => [ROOT . DS . 'plugins' . DS],
            // 'templates' => [APP . 'Template' . DS],
            // 'locales' => [APP . 'Locale' . DS],
            'plugins' => [ROOT . DS . 'plugins' . DS],
            'templates' => [ROOT . DS . 'templates' . DS],
            'locales' => [RESOURCES . 'locales' . DS],
        ],
© www.soinside.com 2019 - 2024. All rights reserved.