Codeigniter - 从控制器到模型的传递值

时间:2017-11-24 12:02:23

标签: codeigniter

我的英语不好,对任何错误都很抱歉。我是Codeigniter的新手,我正在尝试使用此代码搜索记录,这是我的控制器代码:

public function search() {
    if(isset($_POST['search']))
    {
        $s = $_POST['search'];
        $this->db->select('u_id,name,email,phone');
        $this->db->from('user');
        $this->db->where('name =' ,"{$s}" );
        $query = $this->db->get();
        $res = $query->result();

        $data['user'] = null ;
        if($res)
        {
            $data['user'] = $res ;              
        }

        $this->load->view('filter' , $data);              
    }
}

它工作正常,但我想在单独的模型中编写此代码。

$this->db->select('u_id,name,email,phone');
$this->db->from('user');
$this->db->where('name =' ,"{$s}" );
$query = $this->db->get();
$res = $query->result();

但我不知道如何将此变量值$s = $_POST['search'];传递给我的模型。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您可以针对您的问题尝试此解决方案:

public function search() {
    $search_value = $this->input->post('search'));
    $this->db->select('u_id,name,email,phone');
    $this->db->from('user');
    if (isset($search_value) && !empty($search_value)) {
        $this->db->where('name',$search_value);
        // OR
        $this->db->like('name', $search_value);
    }
    $query = $this->db->get();
    $res = $query->result();
    $data['user'] = null;
    if ($res) {
        $data['user'] = $res;
    }
    $this->load->view('filter', $data);
}

我希望它会有所帮助。

答案 1 :(得分:0)

控制器

public function search() {
    $search = $this->input->post('search');
    $this->load->model('your_model'); //<-- You can load the model into "__construct"

    $search_result = $this->your_model->your_search_function($search); //<-- This is how you can pass a variable to the model from controller

    $this->load->view('your_view',['search_result'=>$search_result]); //<-- This is how you can load the data to the view. Hear your search result array is loaded on your view

}

模型

public function your_search_function($search) {

//You will receive this search variable ^^ here in your model

    $this->db->select('u_id,name,email,phone');
    $this->db->from('user');
    $this->db->where('name',$search);
    $query = $this->db->get();
    $result = $query->result_array();

    if(isset($result) && !empty($result))
    {
        return $result;
    } else 
    {
        return FALSE;
    }

}