codeigniter从模型返回false

时间:2014-11-10 17:20:38

标签: php codeigniter

只是想知道是否有必要在我的codeigniter模型函数中使用else {return false;}if () {}就足够了,默认情况下它会在失败的情况下返回false?

控制器:

if ($this->model_a->did()) {    
                $data["results"] = $this->model_a->did();
                echo json_encode($data);
            }

模型:

public function did()
    {    
      //some code here    
        if ($query && $query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return false;
        }    
    }

3 个答案:

答案 0 :(得分:1)

我认为这更像是一个PHP问题,而不是CodeIgniter问题。您可以通过调用模型方法并对结果进行var_dump来轻松测试。如果您没有从PHP中的方法返回任何内容,则返回值为NULL。

答案 1 :(得分:1)

尽管我在CI中有经验,但返回false并不是一个加分点,因为如果你在这里返回false,那么你需要在控制器中有一个条件,这对你应该这样做是没用的,至少可以节省一些代码行

if ($query && $query->num_rows() > 0) {
return $query->result_array();
} else {
return array();
}   

因此返回一个数组将使您免于许多其他错误,例如类型错误。

答案 2 :(得分:1)

在您的控制器中 - 首先测试负面情况 - 如果模型中的方法没有返回任何内容

if ( ! $data["results"] = $this->model_a->did() ) {    

    $this->showNoResults() ; }

else { echo json_encode($data); } 

所以说 - 如果没有回来 - 然后转到showNoResults()方法。 如果结果确实回来,则将其分配给$ data

然而 - 在模型中的这种情况下我也会把ELSE返回false - 有些人会说它的额外代码但是对我来说它更清楚发生了什么。与总是返回一些价值的方法相比。