我经常发生这种情况,我不确定为什么会发生这种情况。这是我模型中的查询:
$query = $this->db->query('SELECT * FROM members WHERE email = "' . $this->session->userdata('email') . '"');
return $query;
我尝试在我的视图中输出:
foreach($query->result() as $row) {...echo $row->name, etc.}
但是我收到了一个错误:
Fatal error: Call to a member function result() on a non-object ...
我运行了探查器并且我的查询是有效的,并且数据库中有数据要被拉出。那么我做错了什么?
答案 0 :(得分:3)
试试这个。
在您的模型中:
function get_members()
{
$query = $this->db->query('SELECT * FROM members WHERE email = "' . $this->session->userdata('email') . '"');
return $query->result();
}
在你的控制器中:
然后,您应该将控制器中数据库中的数据分配给您的视图。
$data['query'] = $this->yourmodel->get_members(); // Data['query'] will be turned into $query in your view.
$this->load->view('mytemplate', $data);
在您看来:
foreach($query as $row) {...echo $row->name, etc.}
答案 1 :(得分:0)
如果要将$query
变量传递给视图,codeigniter会将其转换为键控数组(如果它是对象)。
http://codeigniter.com/user_guide/general/views.html
注意:如果使用对象,则类变量将转换为数组元素。
编辑:
在您的控制器中:
$query = // do whatever to get the $query.
$members = array();
foreach($query->result() as $row) {
$members[] = $row;
}
//send $members to view
在视图中:
foreach($members as $member) {
echo $member['name']; // etc
}