CodeIgniter中的搜索表单

时间:2016-12-04 06:38:47

标签: php mysql codeigniter-3

我在CodeIgniter中创建搜索表单时出现问题 - 它显示的错误如下:

  

遇到PHP错误

     

严重性:注意

     

消息:未定义属性:Login :: $ membership_model

     

文件名:controllers / login.php

     

行号:12

     

回溯:

     

文件:C:\ xampp \ htdocs \ Project5_1 \ CodeIgniter \ application \ controllers \ login.php   行:12   功能:_error_handler

     

文件:C:\ xampp \ htdocs \ Project5_1 \ CodeIgniter \ index.php   行:315   功能:require_once

     

致命错误:在第12行的C:\ xampp \ htdocs \ Project5_1 \ CodeIgniter \ application \ controllers \ login.php中调用null上的成员函数getSearchBook()   遇到PHP错误

     

严重性:错误

     

消息:在null

上调用成员函数getSearchBook()      

文件名:controllers / login.php

     

行号:12

     

回溯:

我的控制器页面是:

<?php 
    class Login extends CI_Controller{
        function search(){
            $searchBook = $this->input->post('searchBook');
            $data = $this->membership_model->getSearchBook($seachBook);
            $this->load->view('main_content',$data);    
        }
?>

我的模型页面是:

    class Membership_model extends CI_Model{
    function getSearchBook($searchBook) {
            $this->db->select('*');
            $this->db->from('book');
            $this->db->like('author',$searchBook);
            return $query->result();
    }
}

我的main_content.php是:

    <?php
        echo form_open('login/search');
        echo form_input('searchBook','Search Book', 'id="searchBook"');
        echo form_submit('submit', 'Search');
        echo form_close();
    ?>

    <table><th>Title</th></table>
    <div>
        <?php
            // List up all results.
            foreach ($results as $val)
            {
                echo $val['title'];
            }
        ?>
    </div>
    </body>

1 个答案:

答案 0 :(得分:0)

自从我使用CodeIgniter以来已经很长时间了,但是从我记忆中来看,你并没有在你的Login类构造函数中加载模型。这就是为什么你得到这两部分错误的原因:

  

消息:未定义属性:Login :: $ membership_model

     

消息:在null

上调用成员函数getSearchBook()

如果您尚未加载membership_model模型,则Login类中不存在属性或函数。

在我的头顶上,我认为在你的登录控制器中需要这样的东西:

<?php 
    class Login extends CI_Controller{

        function __construct()
        {
            parent::__construct();
            $this->load->model('membership_model');
        }

        function search(){
            $searchBook = $this->input->post('searchBook');
            $data = $this->membership_model->getSearchBook($seachBook);
            $this->load->view('main_content',$data);    
        }
?>