目标:如果数据库返回数字1,则重定向到设置页面,如果返回2,如果返回0,则重定向到设置页面2,然后激活else语句
我已经尝试了一段时间,但似乎仍然可以让它发挥作用 我的控制器:
$user_id = array('id'=>$this->loggedInUser->id);
$results = $this->user_model->getUsersStage($user_id);
if($results == '1'){
redirect('registration/setup');
}
我的模特:
function getUsersStage($conditions=array(),$fields='')
{
if(count($conditions)>0)
$this->db->where($conditions);
$this->db->from('users');
if($fields!=''){
$this->db->select($fields);
}
else{
$this->db->select('stage');
}
$result = $this->db->get();
return $result;
}//End of getUsersStage Function
如果你能让我知道出了什么问题会很好,我尝试了很多比较方法,比如
if($results == 1){
Error : Object of class CI_DB_mysql_result could not be converted to int
if(this->$results->stage == 1)
只是为了验证,$this->loggedInUser
正在运行,它确实将正确的sql语句发送给模型。
答案 0 :(得分:3)
更改
if($results == '1'){
redirect('registration/setup');
}
到
if($results->row()->stage == 1){
redirect('registration/setup');
}
答案 1 :(得分:2)
$this->db->get()返回结果集。
$query = $this->db->get('mytable');
// Produces: SELECT * FROM mytable
如果你想检查它是否返回行,你可以检查一下这样的事情
if(count($result->result())) {
// do stuff here
}
答案 2 :(得分:2)
Aftec调用get() - one of the active record functions,你得到一个查询对象。您需要致电methods of that object来实际获得结果。您可能希望在结果对象上调用row()
,例如:
if($results->row()->staging == 1)