Как обычно, «это зависит».Это зависит от того, где вы собираетесь использовать результаты.Обычно ваши запросы должны попадать в базу данных только для тех полей, которые нужны каждому запросу.например, «выбрать field1, field2 из mytable» вместо «select * from mytable».Затем используйте функциональность CodeIgniters, чтобы получить значения полей - например,
$items = $query->result();
foreach ($items as $item) {
$x = $item->field1;
$y = $item->field2;
}
Если, однако, вы передаете целый объект "item" другим функциям, то вам, вероятно, понадобится запрос, чтобы получить всестолбцы, из которых состоит объект, в противном случае некоторые функции могут получать недопустимые данные.
Вы также можете попытаться реализовать некоторую форму «отложенной загрузки», при которой вы передаете некоторые / большую часть данных в исходный объект, а затемметод запрашивает другие данные поля, метод геттера делает еще один запрос к базе данных для получения новой информации.Но это может быть намного сложнее.
Так- для простых результатов в модели или методах, которые возвращают что-то конкретное, отличное от конкретного объекта, - используйте как можно меньший запрос.- для методов, которые возвращают конкретный объект вашей модели, затем используйте как можно меньший запрос, который вернет полную информацию для этого объекта.
В любом случае - сделайте запрос вернувшим то, что нужно.