Codeigniter возвращает false из моделей

0

Просто интересно, нужно ли использовать else {return false;} в моих функциях модели codeigniter или 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;
        }    
    }
Теги:
codeigniter

3 ответа

1
Лучший ответ

в вашем контроллере - сначала проверьте отрицательное состояние - если из метода в вашей модели ничего не вернулось

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

    $this->showNoResults() ; }

else { echo json_encode($data); } 

так что, говоря - если ничего не вернулось - тогда перейдите к методу showNoResults(). Если результаты вернулись, то их присвоили $ data

Тем не менее - в этой ситуации в модели я бы также поставил ELSE return false - некоторые люди сказали бы свой дополнительный код, но для меня он делает более ясным, что происходит. Versus методы, которые всегда возвращают некоторое значение.

1

Поскольку у меня есть опыт в возврате CI, значение false не является плюсом, потому что если вы вернете false здесь, тогда вам нужно вернуть условие в контроллер, который бесполезен, вы должны делать это, так как это сэкономит вам хотя бы некоторый код строк

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

поэтому возврат массива спасет вас от многих других ошибок, таких как ошибка типа.

1

Я думаю, что это скорее вопрос PHP, чем вопрос CodeIgniter. Вы можете легко проверить это, вызвав методы модели и var_dump-ing результат. Если вы не возвращаете ничего из метода в PHP, возвращаемое значение равно NULL.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню