如何在Codeigniter中创建用于搜索的MVC?

jpg*_*z18 4 php search codeigniter

我是CodeIgniter的新手,到目前为止我一直很难学习.我大多数时候从不使用框架,这是我第一次.

我理解MVC,但我真的不知道如何创建搜索,甚至只是一个基本的搜索:我只是希望有人在输入中发送一个单词并在我的数据库中搜索它(使用Ajax或不使用)并给出答案.谁能帮我提一些关于如何进行的想法?我理解在视图中我会放置我的div,输入等等,在控制器中我将调用我的函数来与我的模型进行交互.我正在努力将它们集成到CI上,因为视图实际上是通过控制器填充的,我相信我不能在视图中使用它的功能.

有什么帮助吗?

Roe*_*oel 17

首先创建一个控制器,该控制器将处理搜索请求并显示搜索页面,然后是传递给模型以进行数据库查找的搜索项(并将其发送回控制器).控制器将它传递给视图.

一个小例子;

控制器

class Search extends CI_Controller {

    public function __construct()
    {
        parent::__construct();

        $this->load->helper('form');

        $this->load->model('search_model');
    }

    public function index()
    {
        $this->load->view('search_form');
    }

    public function execute_search()
    {
        // Retrieve the posted search term.
        $search_term = $this->input->post('search');

        // Use a model to retrieve the results.
        $data['results'] = $this->search_model->get_results($search_term);

        // Pass the results to the view.
        $this->load->view('search_results',$data);
    }

}
Run Code Online (Sandbox Code Playgroud)

该模型

class Search_model extends CI_Model {

    public function get_results($search_term='default')
    {
        // Use the Active Record class for safer queries.
        $this->db->select('*');
        $this->db->from('members');
        $this->db->like('username',$search_term);

        // Execute the query.
        $query = $this->db->get();

        // Return the results.
        return $query->result_array();
    }

}
Run Code Online (Sandbox Code Playgroud)

用于显示搜索表单的视图

<?php
    echo form_open('search/execute_search');

    echo form_input(array('name'=>'search'));

    echo form_submit('search_submit','Submit');


?>
Run Code Online (Sandbox Code Playgroud)

用于显示结果的视图

<div>
    <?php
        // List up all results.
        foreach ($results as $val)
        {
            echo $val['username'];
        }
    ?>
</div>
Run Code Online (Sandbox Code Playgroud)