当我调用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>
那么有人可以告诉我如何解决这个错误吗?
答案 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;
}