1

我通过在 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 相关错误,第一手。

4

1 回答 1

1

我通过这样做得到它:

命名空间应用\控制器\管理员;

使用蛋糕\控制器\控制器;

类 AppController 扩展控制器
{
    ......
}

AND 在任何其他管理控制器中,只需执行,示例:对于 UsersController :

使用 App\Controller\**Admin**\AppController;


类 UsersController 扩展 AppController
{
   ……
}
于 2017-09-25T23:43:13.303 回答