【问题标题】:How to create AppController in a Admin area in CakePHP 3如何在 CakePHP 3 的管理区域中创建 AppController
【发布时间】: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


【解决方案1】:

我做到了:

命名空间应用\控制器\管理员; 使用蛋糕\控制器\控制器; 类 AppController 扩展控制器 { ...... }

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

使用 App\Controller\**Admin**\AppController; 类 UsersController 扩展 AppController { …… }

【讨论】:

  • 这对我来说适用于 cakephp4
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-13
  • 1970-01-01
  • 2015-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多