控制器

ThinkCMF目前分为两种控制器,前台和后台控制器;

无论是前台,还是后台控制器都位于应用的Controller目录下.
前台控制器一般继承 Common\Controller\HomebaseController,如果你需要用户登录才访问或操作此控制器,就要继承 Common\Controller\MemberbaseController

我们来创建一个前台控制器:
在Blog应用Controller目录下创建一个IndexController.class.php文件

  1. <?php
  2. namespace Blog\Controller;
  3. use Common\Controller\HomebaseController;
  4. class IndexController extends HomebaseController{
  5. public function index(){
  6. echo "this is blog index !";
  7. }
  8. }

访问地址:http://你的域名/?g=blog&m=index&a=index;

如果只让用户在登录时才能访问此控制器,只需把HomebaseController换成MemberbaseController;

  1. <?php
  2. namespace Blog\Controller;
  3. use Common\Controller\MemberbaseController;
  4. class IndexController extends MemberbaseController{
  5. public function index(){
  6. echo "this is blog index !";
  7. }
  8. }

这里 IndexController 下的所有方法,用户只能在登录后才能访问,否则会报错,让用户登录;

创建后台控制器:

在Blog应用Controller目录下创建一IndexadminController.class.php文件(注意:这里有文件命名规则,以****adminController.class.php或 Admin****Controller.class.php命名的是后台Controller, 在后台菜单导入时会自动识别;)

  1. <?php
  2. namespace Blog\Controller;
  3. use Common\Controller\AdminbaseController;
  4. class IndexadminController extends AdminbaseController{
  5. public function index(){
  6. echo "this is admin controller!";
  7. }
  8. }

访问地址:http://你的域名/?g=blog&m=indexadmin&a=index,这里你一定要先登录后台,才能访问;

如果你想这个控制不用管理员登录也能被访问到,只给IndexadminController加个空的_initialize()方法;

  1. <?php
  2. namespace Blog\Controller;
  3. use Common\Controller\AdminbaseController;
  4. class IndexadminController extends AdminbaseController{
  5. //初始化,这里不执行父类的初始化方法
  6. public function _initialize(){}
  7. public function index(){
  8. echo "this is admin controller!";
  9. }
  10. }