Как уже сказал пинаделсай, логика подсказывает поместить ваш запрос в модель. Эти серверы преследуют 2 цели: 1) поддерживать более строгую и лучшую практику кодирования, разделяя три логики в MVC; 2) упорядочить код и упростить управление днем, когда вы захотите внести некоторые изменения в свой запрос.
Похоже, вы вызываете запрос только в виде одной сотни, но что, если вы вызываете его более одного раза и решаете однажды изменить его? Вам нужно будет проверить все виды и внести изменения в каждый из них; сохраняя логику внутри модели, вы просто меняете один метод и подаете исправленные результаты сразу всем представлениям.
Небольшое дополнение и совет: вам не обязательно вызывать функцию, возвращающую массив, чтобы получить результаты в виде массива. Делать что-то вроде (в вашей модели):
$query = $this->db->get('mytable'); // this is your fetching;
$data = array();
foreach($query->result() as $row)
{
$data[] = $row;
}
return $data;
У вас будут свойства, которые всегда имеют форму массива ($ data), независимо от того, решите ли вы использовать result (), а затем измените его на result_array (); ваше представление будет сохранять ту же логику foreach, вам просто нужно изменить способ вызова значений (используя запись массива или запись объекта).
UPDATE:
Согласно вашему комментарию, вы можете использовать другое представление, когда у вас нет результатов (но это сильно зависит от вашего дизайна. Чаще всего вы позволяете модели передавать с данными данные о количестве для результатов. пример:
$query = $this->db->get('mytable'); // this is your fetching;
$data = array();
if($query->num_rows() > 0)
{
foreach($query->result() as $row)
{
$data[] = $row;
}
}
return $data;
В этом случае $data
начинается как пустой массив. Если строки возвращаются, массив заполняется, в противном случае возвращается пустой, как есть. И затем вы решаете в своем представлении (или в нашем контроллере, если вам нужно загрузить совершенно другое представление в случае), как дифференцировать это условие, выполняя действия, которые вы уже делаете в своем коде.
Помимо всего этого, нет обязательного закона, который вам нужно принуждать. Вы можете разместить любую логику в своем представлении, и CI все равно будет работать. Строго разделение бизнес-логики, манипулирования данными и отображения данных просто гарантирует, что ваше приложение станет намного более управляемым в будущем; даже если вы будете единственным, кто управляет вашим кодом, я уверен, что через шесть месяцев, когда вы вернетесь к тем представлениям, содержащим запрос, вы будете проклинать себя за то, что не сделали «правильный» путь MVC.