PHP MVC运算符比较

时间:2012-12-05 06:52:42

标签: php mysql codeigniter

目标:如果数据库返回数字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语句发送给模型。

3 个答案:

答案 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)