CI result()方法导致致命错误

时间:2013-12-20 14:16:38

标签: php codeigniter

当我调用CodeIgniter的result()方法时,我得到一个未定义的方法。我之前在另一个程序中使用过这种方法,它运行良好,但我不知道为什么它现在不起作用。我已阅读并且从未说过我需要加载任何库,而我从未在我的其他程序中这样做过,所以我无法弄清楚为什么它不知道它是什么方法。

我得到的错误如下:

[20-Dec-2013 14:57:23 Europe/Berlin] PHP Fatal error:  Call to undefined method CI_DB_mysql_driver::result() in /Applications/MAMP/htdocs/CI/application/controllers/mainController.php on line 34

这是我的控制器代码:

class mainController extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('mainModel');
    }
    public function index() {
       $this->load->view('homePage');
    }
    public function chngView(){
       $this->load->view('mainView');
    }
    public function search() {
        $value = $this->input->get('id');
        $details = $this->mainModel->search($value);
        $result = $details->result();
        $this->load->view('mainView', array('values' => $result));
    }
}

继承我的模特:

class mainModel extends CI_Model{
    function __construct() {
        parent::__construct();
        $this->load->database();
    }
    public function search($value){
        $data = $this->db->like($value);
        return $data;
    }
}

最后我的观点:

<html>
    <form action="/CI/index.php/mainController/search" method='get'>
        <input type="text" value="Enter id" name="id">
        <input type="submit" value="enter">
    </form>
    <?php
      if (isset($values)) {
          foreach ($values as $row) {
              echo $row->title;
          }
      }
    ?>
</html>

那么有人可以告诉我如何解决这个错误吗?

1 个答案:

答案 0 :(得分:0)

public function search($value){
    $data = $this->db->like($value);
    return $data;
}

这是问题。您正在打算调用运行查询的get。您的查询尚未运行,因此您无法使用result()。请注意,result()只能在get之后使用。

改为使用

public function search($value){
    $data = $this->db->like($value)->get('tablename');
    return $data;
}