Моя модель имеет функцию, которая должна запускать 2 разных запроса.
В идеале я бы хотел, чтобы он возвратил 2 разных вара (по одному от каждого запроса), которые будут доступны моему контроллеру.
Очевидно, что код, приведенный ниже, не работает b / c, первый возврат завершает выполнение прямо там. Но как я мог бы сделать что-то, что сгенерировало бы эти два результата в одной и той же функции?
Спасибо за любую помощь / указатель, который вы можете предоставить.
MODEL -- Hypothetical code function ABC() { $query1 = $this->db->query( ... MySQL code #1 here ... ); $data1 = array(); foreach (query1->result() as $row){ $data1[$row->k] = $row->value; return $data1; $query2 = $this->db->query( ... MySQL code #2 here ... ); $data2 = array(); foreach (query2->result() as $row){ $data2[$row->k] = $row->value; return $data2; }
Вы можете сделать это, как предложено fazo, но ваш дизайн класса / метода, похоже, имеет проблему. Вам будет лучше реорганизовать этот код и вернуть результаты в две разные функции.
function ABC() { $query1 = $this->db->query( ... MySQL code #1 here ... ); $data = array(); foreach (query1->result() as $row){ $data['query1'][$row->k] = $row->value; $query2 = $this->db->query( ... MySQL code #2 here ... ); $data2 = array(); foreach (query2->result() as $row){ $data['query2'][$row->k] = $row->value; return $data; }
также см. ответ danip
Получил что-либо против возвращаемого массива ($ data1, $ data2); ?
Затем вы можете использовать список ($ foo, $ bar) = $ baz-> ABC (); в вашем контроллере вы хотите.