请使用 CODEIGNITER 帮助.. 我想使用echo打印我的userlevel和电子邮件的值..知道我是否从数据库中获取正确的数据..然后突然这个错误一直困扰着我。 CODEIGNITER的初学者需要一些帮助..非常感谢!
在我的控制器中:
if ($this->is_validated($rules))
{
$where = array('email' => $this->input->post('txt_email'));
$data['query'] = $this->database_model->select_userlevel('userlevel', $where);
$user = $data['query'];
foreach($user->result() as $row)
{
echo $row->email;
echo $row->userlevel;
}
}
在我的模型中:
public function select_userlevel($table, $where)
{
$this->db->where($where);
$query = $this->db->get($table);
if ($query->num_rows() > 0)
{
return true;
}
else
{
echo 'no value';
return false;
}
}
答案 0 :(得分:2)
而不是return true
,您需要在模型中返回查询
<强>模型强>
public function select_userlevel($table, $where)
{
$this->db->where($where);
$query = $this->db->get($table);
if ($query->num_rows() > 0)
{
return $query;// return query here
}
else
{
return false;
}
<强>控制器强>
$user = $this->database_model->select_userlevel('userlevel', $where);
foreach($user->result() as $row)
{
// your code here
}
更新以获得更好的解决方案并正确使用MVC。
而不是返回查询,您需要从模型中返回数据
<强> MODEL 强>
public function select_userlevel($table, $where)
{
$this->db->where($where);
$query = $this->db->get($table);
if ($query->num_rows() > 0)
{
return $query->result(); // return your result
}
else
{
return false;
}
}
<强> CONTROLLER 强>
$user = $this->database_model->select_userlevel('userlevel', $where);
foreach ($user as $row) {
// your code here
}
答案 1 :(得分:0)
$user
不是有效的记录对象,因此它没有对结果方法的引用。
所有这些逻辑都属于模型,而不属于控制器。
public function doSomething()
{
if( !$this->is_validated($rules) )
return;
$email = $this->input->post('txt_email');
$users = $this->database_model->select_userlevel($email);
// for debugging
var_dump( $users )
die();
}
public function select_userlevel($email)
{
$query = $this->db->select()
->where('email', $email)
->get('userlevel');
return ( $query->num_rows() > 0) ? $query->result() : false;
}