2017-05-10 11 views
0

가능한 경우 확실하지 않지만 내가하려는 것은 내 컨트롤러에 get 요청을 통해 쿼리 문자열을 전달하는 것입니다. 여기에서 $ _GET [ 'name']을 사용하여 쿼리 문자열 값을 얻고 있습니다. 그때 내가하고 싶은 것은 GET 값을 사용하고 그것을 모델에 전달하여 필요한 데이터를 반환하는 메소드의 이름으로 추가하는 것입니다.Codeigniter - 실행할 메서드 이름에 변수 이름을 추가하십시오. 모델 함수

여러 동작이 서로 다른 쿼리 문자열 값을 동일한 컨트롤러에 전달하지만이 값을 사용하여 내 모델 내의 다른 기능에서 데이터를 가져 오기 때문입니다.

컨트롤러

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(); 
    } 
} 

My_model

class My_model extends CI_Model { 

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

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

어떤 생각?

+0

당신이 $ this-을 시도 할 수 있습니다> my_model -> {$ 여기서 queryname .'_ get_query '}(); – jagad89

+0

대단히 감사합니다. – swood

답변

0

일반적인 PHP는 잘 작동합니다 :

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

감사합니다. – swood