Вернуть одно значение из метода модели CI - PullRequest
3 голосов
/ 08 марта 2011

У меня есть метод, который должен возвращать одно значение. Поскольку ->result() возвращает массив, я использую следующее, чтобы вернуть единственное значение, которое я хотел бы получить:

return array_pop($this->db->query($SQL)->result())->event_name;

хотя он работает отлично, мне интересно, есть ли что-то встроенное в CI, которое, возможно, я пропустил в документации Я также использую этот же трюк, чтобы вернуть одну запись:

return array_pop($this->db->query($SQL)->result());

Есть ли лучший способ сделать это?

Ответы [ 2 ]

11 голосов
/ 08 марта 2011

row_array() вернет вам 1-ю строку, найденную как массив, а row() вернет ее как объект.

Таким образом, вместо array_pop вы можете использовать:

return $this->db->query($SQL)->row()->event_name;

ИЛИ

return $this->db->query($SQL)->row_array();

https://www.codeigniter.com/user_guide/database/results.html

1 голос
/ 19 июля 2012

Когда вы делаете то, что предложил Rocket, вы можете получить одно значение, просто выбирая из этого массива. Например, я использовал этот запрос, чтобы получить количество строк:

function getNumberOfArticles() {
    $result = $this->db->query("SELECT COUNT(id) AS returnVal FROM articles")->row_array();
    return $result['returnVal'];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...