간단한 문제입니다.codeigniter가 컨트롤러에서 모델로 변수를 전달합니다.
컨트롤러가 $this->uri->segment(3)
을 사용하여 URL에서 표시 할 if를 얻는 중입니다. 이것은 항상 단일 값입니다.
$customerid = array(
'id' => $this->uri->segment(3)
);
컨트롤러 구문은 다음과 같습니다 : 나는 함께 모델에 전달하는 배열이 퍼팅하고 난 다음이 배열 값에 액세스에 전달하려고
function confirm_delete_customer()
{
$data['title']="Confirm Customer Deletion";
$customerid=array(
'id'=>$this->uri->segment(3)
);
//query model to get data results for form
$data=array();
if($query=$this->model_master_data->get_customer_records_to_delete()){
$data['records']=$query;
$this->load->view("master_data/view_master_data_header",$data);
$this->load->view("master_data/view_master_data_nav");
$this->load->view("master_data/view_content_master_data_confirm_customer_deletion",$data);
$this->load->view("master_data/view_master_data_footer");
}
내 처리 할 모델. 는 IT 구문 아래에 따라 작동 모델로 I 하드 코드 배열 경우
모델 - 수동 구문은 다음과 같습니다
function get_customer_records_to_delete()
{
$query = $this->db->get_where('customers', array('id'=>43));
return $query->result();
}
내 컨트롤러에서 배열이 교체하려고하면이 오류와 함께 실패 : 나는 싶어 모델의 Undefined variable: customerid
아이디어 작업 :
function get_customer_records_to_delete()
{
$query = $this->db->get_where('customers', $customerid);
return $query->result();
}
작은 느낌입니다. 그러나 이것은보기로 출력하기 위해 데이터베이스에서 단일 레코드를 얻는 가장 좋은 방법입니까?
미리 도움을 청하십시오.
function confirm_delete_customer()
{
$data=array();
$data['title']="Confirm Customer Deletion";
$customerId = $this->uri->segment(3);
//Prevent SQL injections
if(!is_numeric($customerId) || empty($customerId)) {
show_error("Bad Request");
}
$query = $this->model_master_data->get_customer_records_to_delete($customerId);
if ($query){
$data['records']=$query;
$this->load->view("master_data/view_master_data_header",$data);
$this->load->view("master_data/view_master_data_nav");
$this->load->view("master_data/view_content_master_data_confirm_customer_deletion",$data);
$this->load->view("master_data/view_master_data_footer");
}
}
다음은 간단하게 호출 할 수 있습니다 :
감사합니다. 이것은 효과가 있지만 모범 사례입니까?컨트롤러가 값을 가져 와서 값을 직접받는 모델이 아닌 모델에 전달해야한다고 생각했습니다. – Smudger
둘째, 단일 레코드를 반환하는 데 사용할 수있는 최고의 코드 스 니펫입니까? 존 감사합니다. – Smudger
대답은 아니오, 이것이 최선의 방법은 아닙니다. 모범 사례 기법으로 답변을 업데이트하겠습니다. –