Amado
Amado

Reputation: 383

How to pass an array to the model from the controller in codeIgniter

I am trying to pass an array to the model from the controller in codeIgnitor I know this question have some answers but I tried all of them and no solution works with me. So this my code:

Controller:

<?php
if(! defined('BASEPATH')) exit('No direct script access allowed');
class SearchController extends CI_Controller{
    var $controller = "user";
    public function index(){
        $this->home();
    }
    public function home(){
        $this->load->view("search_view");
    }
    public function search(){
        if(isset($_POST['submit'])){
            $data['type']=$this->input->post('type');
            $data['value']=$this->input->post('value');
            $this->load->model("SearchModel");
            $this->load->SearchModel->getCadre($data);
        }                           
    }
}
?>

Model:

<?php
class SearchModel extends CI_Model{
    function construct(){
        parent::__construct();
        $this->getCadre();
    }
    function getCadre(){
        $query = $this->db->get('cadres');
        $query = $this->db->where($type,$value);//the argument witch i want to take from array
        if($query->num_rows()>0){
            $values = result();
            return $query->result();
        }
        else{
            return NULL;
        }
    }
}
?>

Upvotes: 1

Views: 1271

Answers (1)

Hikmat Sijapati
Hikmat Sijapati

Reputation: 6994

Try below code in your model::

class SearchModel extends CI_Model{
    function construct(){
        parent::__construct();
    }
    function getCadre($data = array()){

        $this->db->where($data);//the argument witch i want to take from array
        $query = $this->db->get('cadres');
        if($query->num_rows()>0){
            // $values = result();
            return $query->result();
        }
        else{
            return NULL;
        }
    }
}

OR you can pass individual data as below and return result...Also try as below

Controller:

if(! defined('BASEPATH')) exit('No direct script access allowed');
class SearchController extends CI_Controller{
    var $controller = "user";
    public function index(){
        $this->home();
    }
    public function home(){
        $this->load->view("search_view");
    }
    public function search(){
        if(isset($_POST['submit'])){
            $type=$this->input->post('type');
            $value=$this->input->post('value');
            $this->load->model("searchmodel");
            $data = $this->searchmodel->getCadre($type,$value);
            if($data==NULL){
               echo 'No records found!!';
            }
             else
                {
                //send data to view
                 $this->load->view('view_name',$data);
                }
        }                           
    }
}

Model

class SearchModel extends CI_Model{
    function construct(){
        parent::__construct();
        $this->load->database();
    }
    function getCadre($type,$value){

        $this->db->where('type',$type);//the argument witch i want to take from array
        $this->db->where('value',$value);
        $query = $this->db->get('cadres');
        if($query->num_rows()>0){
            // $values = result();
            return $query->result();
        }
        else{
            return NULL;
        }
    }
}
?>

Upvotes: 2

Related Questions