Codeigniter, как вернуть несколько строк из одного столбца в модели

Мне нужно получить все строки, которые фильтруются по запросу. Но из модели в контроллер возвращается только первая строка.

Ниже приведена моя модельная функция. Как получить все необходимые данные?

public function getOfferTags($param) {

    $this->db->select('tags.*');
    $this->db->from('tags');
    $this->db->join('offer_tag', 'offer_tag.tag_id = tags.id');
    $this->db->join('offers', 'offers.id = offer_tag.offer_id');
    $this->db->where('offers.id', $param);
    $query = $this->db->get();
    return $query->row();    

}

Не могли бы вы вернуть запрос, а не одну строку, а затем перебрать его, или return $query->result_array()

Dale 17.09.2018 10:33

Извините, я новичок в CI. Когда я проверяю возвращаемые значения на контроллере, возвращается только первая строка.

shavindip 17.09.2018 10:36
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
1
2
983
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Просто не возвращайте строку и извлекайте в этом месте как форму массива, например

return $query->result_array();

После этого проверяем контроллер и получаем результат в массиве.

Я просто хотел добавить, поскольку вы новичок в CI, что вы всегда должны проверять, являются ли они строками, прежде чем использовать массив, чтобы предотвратить уведомления или проблемы. с помощью метода Мехты вы бы сделали if (count($rows) > 0) { //rows exist } else { // no rows, display error .etc. } или можете:

$query = $this->db->get();
if ($query->num_rows() > 0) {
    return $query->result_array(); // or result() for obj
}
return false;

Использование:

if ($this->somemodel->getOfferTags($stmt)) {
    // has data
} else {
    // no data
}

Важно начать с хороших практик, и это поможет;)

Большое тебе спасибо. Я обязательно буду следовать вышеуказанной практике

shavindip 17.09.2018 11:22

Другие вопросы по теме