Codeigniter: Могу ли я вернуть несколько значений из одной функции? - PullRequest
2 голосов
/ 15 августа 2011

Я хотел бы вернуть результаты запроса по количеству строк без необходимости выполнения нескольких запросов. Возможно ли это в Codeigniter? Следующее работает для возврата результатов запроса, но возможно ли также подсчитать количество найденных записей?

Контроллер:

$data['records'] = $this->item_model->searchItem($item_name);

Модель:

$query = $this->db->query($sql, array($this->user_id, '%'.$item_name.'%'));
return $query->result();

Ответы [ 3 ]

14 голосов
/ 15 августа 2011
$bindings = array($this->user_id, '%'.$item_name.'%');

$records = $this->db->query($sql, $bindings)->result();

return array(
    'records' => $records,
    'count' => count($records),
);

Затем в вашем контроллере:

$query = $this->item_model->searchItem($item_name);

$data['records'] = $query['records'];
$data['count'] = $query['count'];
3 голосов
/ 15 августа 2011

Вариант один

$query = $this->db->query($sql, array($this->user_id, '%'.$item_name.'%'));
$data['result'] =  $query->result();
$data['rows']   = $query->num_rows();
return $data;

Вариант два

// model
$query = $this->db->query($sql, array($this->user_id, '%'.$item_name.'%'));
return $query;
// controller
$data['query'] = $this->item_model->searchItem($item_name);
// then you have $data['query']->result();
// and $data['query']->num_rows();
0 голосов
/ 17 июля 2012

Вы можете отправить столько переменных из функции, сколько захотите. Однако, пожалуйста, помните, что функция должна выполнять один ЕДИНИЦЫ работы.таким образом, это правило не должно нарушаться.мы можем использовать контрольную структуру

, если это {return A;} elseif () {return B;} else {return C;}

ALso мы можем отправить (связка)) переменные в массив и отправить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...