2017-11-17 4 views
0

응용 프로그램이 AJAX 요청을 컨트롤러의 메소드에 적용합니다.

컨트롤러는 모델에서 메서드를 호출하여 DB에서 쿼리를 실행 한 다음 결과를 반환합니다.

POST로 AJAX "type"이 지정되었습니다.

$ _POST 수퍼 글로벌 값을 모델에서 사용할 수 있지만 모델 메서드 서명에 여전히 $ _POST 값을 나열해야합니까? 시스템을 해부 사람들이 신속하게

$this->Students_table_model->attendance_history_get(); 

VS

모델 방법

$this->Students_table_model->attendance_history_get($_POST['students_id'],$_POST['start_date'],$_POST['end_date']); 

public function attendance_history_get($students_id,$start,$end) 

로가는 입력을 본 후 그냥 사용할 수있는 $ _POST 값을 사용 할 수 있도록 내가 이것을 생각하고

는 것이 좋습니다 모델 메소드 attendance_history_get()

+0

Refrer https://stackoverflow.com/questions/37514133/call-codeigniter-model-with-ajax –

+0

제공된 게시물은 AJAX 요청에서 모델에 직접 액세스하기 위해 컨트롤러를 무시할 수없는 방법에 대해 설명합니다. 나는 이런 것들을 시도하지 않을 정도로 충분히 알고있다. $ _POST 값을 Model 메서드 시그니처에 포함해야하는지 또는 모델 메서드에서 POST 값으로 직접 작업 할 수 있는지에 대한 내 질문이 있습니다. 어느 쪽이든 작동합니다. 나는 사람들이 베스트 프랙티스라고 생각하는 것이 궁금합니다. –

+0

귀하의 모델에서 그렇게하지 말고 대신 인수로 전달하십시오. – Mark

답변

3

나는 codeigniter 사용자 정의 함수 $ this-> input-> post();를 사용해야한다고 생각한다. 포스트 값을

$student_id = $this->input->post('students_id'); 
$start_date = $this->input->post('start_date'); 
$end_date = $this->input->post('end_date'); 
+0

과 같은 컨트롤러에 넣고 모델 메서드로 전달하십시오. 전체 지점에서 코드 줄을 줄이려고했으나 들어오는 부분에서 CI post() 메서드를 실행하는 것이 좋습니다. data –

+0

입력 클래스는 두 가지 용도로 사용됩니다. 보안을 위해 전역 입력 데이터를 사전 처리합니다. 입력 데이터를 가져 와서 사전 처리하는 데 도움이되는 몇 가지 방법을 제공합니다. 예. 그것을 사용해야합니다. 감사 –

0

사용

$this->Students_table_model->attendance_history_get($_POST); 

를 얻을 모델에서 사용할 수 있습니다.