继承的控制器未检测到CodeIgniter URL参数

时间:2014-11-28 11:40:53

标签: codeigniter url

应用程序/核心/ BaseController.php

class BaseController extends CI_Controller {
  public function __construct() { parent::__construct(); }
}

应用程序/控制器/ abc.php

class Abc extends BaseController {
  public function __construct() { parent::__construct(); }
  public function test($id) {
    echo $id;
  }
}

打开URL abc/test/10会返回函数test未命中参数($ id)的错误。但如果Abc控制器直接继承到CI_Controller,则运行良好。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您在application / core /中放置的任何类将替换或扩展系统/核心中的同名类 - 但为此,您必须在类名前加上MY_(extend)或CI_(replace)。请参阅the manual

由于系统/核心中没有名为BaseController的类,我猜你想要的是这样的:

class MY_Controller extends CI_Controller {
    public function __construct() { 
      parent::__construct(); 
    }
}

class Abc extends MY_Controller {
    public function __construct() { parent::__construct(); }
    public function test($id) {
      echo $id;
    }
}

如果上述内容不是您所需要的,那么您必须解释使用BaseController实现的目标。