CodeIgniter:根据所选的控制器名称显示方法名称

时间:2015-11-18 08:27:24

标签: javascript php jquery ajax codeigniter

我在使用CodeIgniter构建的网页中有2个下拉列表。第一个下拉列表是控制器名称,第二个是方法名称。我可以使用get_filenames()从控制器目录中提取所有控制器,并在下拉选项中显示其名称。现在,当用户从第一个下拉列表中选择控制器名称时,我想在第二个下拉列表中显示在该模型文件上声明的所有方法名称。

我会按照第一个下拉选项进行ajax调用并填充第二个下拉列表。我的问题是如何根据所选控制器获取方法名称。

这是我尝试过的。注意$data['controller']是我通过ajax发布的控制器名称。这是显示方法名称,但它还显示了我已扩展控制器类的类的方法名称。我只想要在控制器上声明的方法名称。

$myClass = require_once($this->config->item('APP_FULL_PATH').'controllers/' . $data['controller'] . ".php"); 
print_r(get_class_methods(new $data['controller']()));

知道如何做到这一点!

1 个答案:

答案 0 :(得分:0)

你的结束 - 包括你要打电话的课程,然后这样做;

$class_methods = get_class_methods('myclass');
// or
$class_methods = get_class_methods(new myclass());

foreach ($class_methods as $method_name) {
    echo "$method_name\n";
}

对于CodeIgniter,请执行此操作;

get_class_methods($this);

所以一个例子是;

class myclass extends CI_Controller {

  public function __construct() {

            parent::__construct();

            var_dump(get_class_methods($this));
        }

}