CakePHP项目中的管理面板/接口

CakePHP项目中的管理面板/接口,cakephp,admin,Cakephp,Admin,我想在我的一个CakePHP项目中创建一个“管理面板/接口”。你知道这在现代网站上很常见。起初,我计划为此创建一个插件,并尝试这样做。它不起作用,不知道为什么,我稍后会寻求帮助。但是,接下来我看到CakePHP已经使用“Scafolding”提供了这个特性。我现在正在尝试这个,但不知道为什么它不能像我预期的那样工作。以下是我所做的: app/config/core.php : --------------------- . . . Configure::write('Routing.prefix

我想在我的一个CakePHP项目中创建一个“管理面板/接口”。你知道这在现代网站上很常见。起初,我计划为此创建一个插件,并尝试这样做。它不起作用,不知道为什么,我稍后会寻求帮助。但是,接下来我看到CakePHP已经使用“Scafolding”提供了这个特性。我现在正在尝试这个,但不知道为什么它不能像我预期的那样工作。以下是我所做的:

app/config/core.php :
---------------------
.
.
.
Configure::write('Routing.prefixes',array('admin'));
.
.
.

app/Controller/AppController.php :
----------------------------------
.
.
.
public $components=array(
    'Session',
    'Auth'=>array(
        'loginRedirect'=>array('admin'=>true,'controller'=>'home','action'=>'index'),
        'logoutRedirect'=>array('controller'=>'home','action'=>'index'),
        'authorize'=>array('Controller')
    )
);
.
.
.
我想,管理面板应该有一个单独的控制器,这就是我创建它的原因:

app/Controller/AdminsController.php :
-------------------------------------
<?php
    App::uses('AppController','Controller');
    class AdminsController extends AppController{
       public $name='Admins';
       public $scaffold='admin';
    }
app/Controller/AdminsController.php:
-------------------------------------

AdminsController不必使用admin前缀,您只需像以前一样定义Routing.Prefixes

Configure::write('Routing.prefixes',array('admin'));
对于您向我们提到的JobsController示例,要使其正常工作,您只需执行以下操作:

<?php

App::uses('AppController', 'Controller');

class JobsController extends AppController {
     public $scaffold = 'admin';
}

明白了。谢谢。我想现在可以了。但是,你应该像这样创建“管理面板”,还是我应该为它创建一个不同的插件?@vicocamchoIts取决于你。您可以将其放在主应用程序上,也可以将其作为插件,以便以后在其他项目中重复使用。
<?php

App::uses('AppController', 'Controller');

class JobsController extends AppController {
     public $scaffold = 'admin';
}
<?php


App::uses('AppController', 'Controller');

class ArticlesController extends AppController {

      function admin_index() {
        //This method can be found under /admin/articles
      }
}