Php Codeigniter-将变量名称附加到方法名称以运行模型函数

Php Codeigniter-将变量名称附加到方法名称以运行模型函数,php,function,codeigniter,methods,controllers,Php,Function,Codeigniter,Methods,Controllers,不确定是否可能,但我正在尝试通过get请求将查询字符串传递给我的控制器。从这里,我使用$\u GET['name']获取查询字符串值。然后我想做的是使用这个GET值并将它作为我将要传递给我的模型的方法的名称附加,以返回我需要的数据 这是因为具有不同查询字符串值的多个操作将不同的查询字符串值传递给同一控制器,然后使用该值从我的模型中的不同函数获取数据 e、 g 控制器 class ControllerName extends CI_Controller { function __cons

不确定是否可能,但我正在尝试通过get请求将查询字符串传递给我的控制器。从这里,我使用$\u GET['name']获取查询字符串值。然后我想做的是使用这个GET值并将它作为我将要传递给我的模型的方法的名称附加,以返回我需要的数据

这是因为具有不同查询字符串值的多个操作将不同的查询字符串值传递给同一控制器,然后使用该值从我的模型中的不同函数获取数据

e、 g

控制器

class ControllerName extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->model('my_model');
    }

    public function index() {
        $queryName = $_GET['query_string']
        // e.g. $queryName = 'customer'

        //Use the query string and append to method to pass to Model function
        $result = $this->my_model->$queryName._get_query(); //???

       //e.g. $result = $this->my_model->customer_get_query();
    }
}
我的模型

class My_model extends CI_Model {

    function __construct() {
        parent::__construct();
        $this->load->database();
    }

    function customer_get_query() {
        //...run database query and return result
    }
}

有什么想法吗?

通常的php应该可以正常工作:

$result = call_user_func([$this->my_model, $queryName.'_get_query']);

你可以试试$this->my_model->{$queryName.“'u get_query'}();太好了,谢谢你,真是太棒了!