CodeIgniter MVC 流程返回类似用户输入的数据库记录

问题描述 投票:0回答:2

我在

home
控制器中的功能

public function search(){
    $search = $this->input->post('search');
    $data['users'] =  $this->users_model->search($search);
    $this->load-view('index');
}

我在

users_model
模型中的功能

public function search($search){
    $this->db->select('*');
    $this->db->from('users');
    $this->db->like('username', 'fname','lname', 'mname', $search);
    $query = $this->db->get();
    return $query->result();
}

我在

view
profile1 中的功能

<form class="navbar-form" role="search">
    <div class="input-group">
        <input type="text" class="form-control" placeholder="Search">
        <div class="input-group-btn">
            <button class="btn btn-default" type="submit" style="height: 34px;"><i class="glyphicon glyphicon-search"></i></button>
        </div>
    </div>
</form>

它没有方法,因为我不知道如何正确执行它。

在非对象上调用成员函数

search()

php codeigniter model-view-controller sql-like submission
2个回答
2
投票
Try this complete search system

in search form

   <form action="<?php echo base_url(); ?>home/search" method="post"> 
        <div class="input-group"> 
        <input type="text" name="search" class="form-control" placeholder="Search">
        </div>
        <div class="input-group">
        <input type="submit" value="search" name="save"/>
        </div>
        </form>

查看数据

     <table>
      <tr>
          <td>User Name</td>
          <td>First Name</td>
          <td>Last Name</td>
          <td>Middle Name</td>
      </tr>
<?php foreach($users as $search_show):?>
      <tr>
          <td><?php echo $search_show->username?></td>
          <td><?php echo $search_show->fname?></td>
          <td><?php echo $search_show->lname?></td>
          <td><?php echo $search_show->mname?></td>
      </tr>
<?php endforeach ?>

 </table>

在控制器中

    public function search()
{
    $this->load->model('users_model');
    $search = $this->input->post('search');
    $data['users'] =  $this->users_model->search($search);
    $this->load-view('index',$data);
}

在模型中

    public function search($search)
{
    $this->db->select('*');
    $this->db->from('users');
    $this->db->like('username',$search);
    $this->db->or_like('fname',$search);
    $this->db->or_like('lname',$search);
    $this->db->or_like('mname',$search);
    $query = $this->db->get();
    return $query->result();
}

0
投票

您正在尝试在未定义的属性上调用

search()
$this->users_model
,这意味着您尚未加载模型。

您可以在需要调用它之前手动加载它(节省资源),方法是:

$this->load->model('users_model');

或者通过在 CodeIgniter 配置中自动加载它(资源较多,具体取决于型号)。

© www.soinside.com 2019 - 2024. All rights reserved.