【发布时间】:2017-05-09 02:49:16
【问题描述】:
我通过在 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 因为这个名字已经在使用 C:\wamp\www\d3\src\Controller\Admin\AppController.php 在第 7 行
我不确定将本地 AppController.php 用于 /Admin/ 名称空间的最佳方式是什么。无论如何我真的需要一个吗,我认为是的,以便覆盖管理相关功能并实际修复控制台中的 acl_extra acl_sync 相关错误。
【问题讨论】:
-
尝试将
use App\Controller\AppController;更改为use App\Controller\AppController as Controller;
标签: admin acl prefix cakephp-3.3 cake-bake