0

目标:如果数据库返回数字 1 ,则重定向到设置页面,如果返回 2 ,则重定向到设置页面 2 如果返回 0 则激活 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 语句。

4

3 回答 3

3

改变

if($results == '1'){
    redirect('registration/setup');
    } 

if($results->row()->stage == 1){
    redirect('registration/setup');
    } 
于 2012-12-05T06:56:47.057 回答
2

$this->db->get()返回结果集。

 $query = $this->db->get('mytable');
 // Produces: SELECT * FROM mytable

如果你想检查它是否返回行,你可以检查这样的事情

if(count($result->result())) {

  // do stuff here
}
于 2012-12-05T07:00:25.193 回答
2

Aftec 调用 get() –活动记录函数之一,您将获得一个查询对象。您需要调用该对象的方法才能实际获得结果。您可能想要调用row()您的结果对象,例如:

if($results->row()->staging == 1)
于 2012-12-05T07:02:42.170 回答