我在使用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']()));
知道如何做到这一点!
答案 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));
}
}