我通过在 routes.php 文件中设置前缀“admin”来创建管理区域:
Router::prefix('admin', function ($routes) {
// All routes here will be prefixed with `/admin`
// And have the prefix => admin route element added.
$routes->fallbacks(DashedRoute::class);
});
现在当我跑
bin/cake acl_extras aco_sync
它给了我以下错误:
Welcome to CakePHP v3.3.10 Console
App : src
Path: C:\wamp\www\d3\src\
PHP : 5.5.12
Fatal error: Class 'App\Controller\Admin\AppController' not found in C:\wamp\www\d3\src\Controller\Admin\ErrorController.php on line 25
从上面的错误中,我了解到它正在 src/Controller/Admin/ 区域中寻找 AppController,因此我确实使用以下代码在那里创建了一个 AppController:
namespace App\Controller\Admin;
use App\Controller\AppController;
class AppController extends Controller
{
}
编辑:我错了。我们不能在这里扩展Controller,因为我们没有包含它。我们需要并且实际上想要扩展 AppController,因此我们需要将 Admin/AppController 类命名为类似 AdminAppController extends AppController?? 如果是这样,其他本地控制器如何使用它?现在对我来说似乎很困惑。
但是现在控制台中出现了新的错误,上面写着:
致命错误:无法声明类 App\Controller\Admin\AppController,因为该名称已在第 7 行的 C:\wamp\www\d3\src\Controller\Admin\AppController.php 中使用
我不确定为 /Admin/ 命名空间使用本地 AppController.php 的最佳方式是什么。无论如何,我真的需要一个吗,我认为是的,以便覆盖管理相关功能并实际修复控制台中的 acl_extra acl_sync 相关错误,第一手。