我通过在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扩展AppController?如果是这样,其他本地控制器如何使用它?现在对我来说似乎很困惑。
但现在控制台出现了新的错误:
致命错误:无法声明类App \ Controller \ Admin \ AppController 因为该名称已在使用中 第7行的C:\ wamp \ www \ d3 \ src \ Controller \ Admin \ AppController.php
我不确定在/ Admin / name空间中使用本地AppController.php的最佳方法是什么。我是否真的需要一个,我想是的,以便覆盖管理相关的功能,并实际上在第一手修复控制台中的acl_extra acl_sync相关错误。
答案 0 :(得分:0)
我做到了:
namespace App\Controller\Admin; use Cake\Controller\Controller; class AppController extends Controller { ..... }
AND在任何其他管理控制器中,只需执行,例如:对于UsersController:
use App\Controller\**Admin**\AppController; class UsersController extends AppController { ...... }