Форум программистов, компьютерный форум, киберфорум
PHP: Фреймворки
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
 Аватар для anar4you
4 / 0 / 0
Регистрация: 16.07.2014
Сообщений: 65

Объект в Codeigniter

01.01.2015, 16:43. Показов 1450. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем! Всех с наступившем Новым Годом!

Сразу хочу извиниться за наверно тупой вопрос. Но.
Как все такие пользоваться объектами в CodeIgniter'e.
То есть.

У меня есть контроллер вида:
PHP
1
2
3
4
5
6
7
8
9
class Home extends CI_Controller {
 
    public function index()
    {
        $this->load->model('news'); // Загружаю модель 'news'
        $data['news'] = $this->news->get_news(); // В массив data записываю результат функции get_news модели news
        $this->load->view('welcome_message', $data); // Передаю массив data в вид
    }
}
Модель:
PHP
1
2
3
4
5
6
7
8
9
10
11
class News extends CI_Model {
 
    function get_news()
    {
        $this->db->limit('3');
        $this->db->order_by('id', 'desc');
        $query = $this->db->get('news');
                // Думаю, выше все понятно, а вот ниже результат я записываю в виде массива. А мне нужно чтобы было в виде объекта, а не массива.
        return $query->result_array(); // Возвращаем массив
    }
}
Вид:
PHP/HTML
1
2
3
4
5
6
7
8
<?php foreach($news as $row): ?>
        <div class="col-md-4 news-item">
               <h2 class="title"><a href="news-single.html"><?=$row['id'];?> | <?=$row['title'];?></a></h2>
               <img class="thumb" src="<?=$row['s_img'];?>" alt="" />
               <p><?=$row['s_desc'];?></p>
               <a class="read-more" href="news-single.html">Подробнее<i class="fa fa-chevron-right"></i></a>                
        </div>
<?php endforeach; ?>
Вообщем. Если не понятно, что я хочу получить. Данные у меня в виде массива, а хотелось бы в виде объекта, как это сделать?
Заранее благодарю за ответ)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.01.2015, 16:43
Ответы с готовыми решениями:

CodeIgniter
Доброго времени суток! Пишу с помощью CodeIgniter вход в админку. Есть функция, которая проверяет, был ли осуществлен вход ранее: ...

CodeIgniter
Здравствуйте, помогите пожалуйста разобраться сCodeIgniter возникает такая ошибка: Fatal error: Call to undefined function...

CodeIgniter
суть проблемы такова когда я из бд пытаюсь вытащить категории для сайта через цикл foreach то у меня выводит закорючки , но в тоже время...

10
Безумец
 Аватар для mrtmaxxx
48 / 48 / 12
Регистрация: 06.02.2014
Сообщений: 214
01.01.2015, 18:24
Здравствуйте. Вместо вот этого
Цитата Сообщение от anar4you Посмотреть сообщение
return $query->result_array(); // Возвращаем массив
пишем вот это
PHP
1
 return $query->result_object();
Более подробное описание - тут
0
 Аватар для anar4you
4 / 0 / 0
Регистрация: 16.07.2014
Сообщений: 65
01.01.2015, 20:08  [ТС]
Fatal error: Cannot use object of type stdClass as array in Z:\home\test1.ru\www\application\views\w elcome_message.php on line 50

P.S версия моего фреймворка 2.* а не бета 3.*
0
Безумец
 Аватар для mrtmaxxx
48 / 48 / 12
Регистрация: 06.02.2014
Сообщений: 214
02.01.2015, 08:52
Ну а прочитать доку на свою версию?
http://www.codeigniter.com/use... sults.html

Тогда примет вид:
PHP
1
2
3
4
5
6
7
8
$query = $this->db->query("YOUR QUERY");
 
foreach ($query->result() as $row)
{
   echo $row->title;
   echo $row->name;
   echo $row->body;
}
или

PHP
1
2
3
4
5
6
7
8
9
10
11
$query = $this->db->query("YOUR QUERY");
 
if ($query->num_rows() > 0)
{
   foreach ($query->result() as $row)
   {
      echo $row->title;
      echo $row->name;
      echo $row->body;
   }
}
0
 Аватар для anar4you
4 / 0 / 0
Регистрация: 16.07.2014
Сообщений: 65
02.01.2015, 10:02  [ТС]
А код в модели какой будет?
0
Безумец
 Аватар для mrtmaxxx
48 / 48 / 12
Регистрация: 06.02.2014
Сообщений: 214
02.01.2015, 10:51
PHP
1
2
3
4
5
class News extends CI_Model { 
function get_news() { 
$this->db->limit('3'); $this->db->order_by('id', 'desc'); 
$query = $this->db->get('news'); 
return $query->result(); } }
Ну и в представлении потом в объектном виде написать
1
 Аватар для anar4you
4 / 0 / 0
Регистрация: 16.07.2014
Сообщений: 65
02.01.2015, 11:17  [ТС]
В представлении сделал так:
PHP
1
2
3
4
5
6
7
8
9
if ($query->num_rows() > 0)
{
   foreach ($query->result() as $row)
   {
      echo $row->id;
      echo $row->title;
      echo $row->s_desc;
   }
}
В результате ошибка:
PHP
1
2
3
4
5
6
7
8
9
A PHP Error was encountered
 
Severity: Notice
 
Message: Undefined variable: query
 
Filename: views/welcome_message.php
 
Line Number: 50
PHP
1
Fatal error: Call to a member function num_rows() on a non-object in Z:\home\test1.ru\www\application\views\welcome_message.php on line 50
Добавлено через 25 секунд
Возможно у меня в контроллере еще нужно что-то переделать?
0
Безумец
 Аватар для mrtmaxxx
48 / 48 / 12
Регистрация: 06.02.2014
Сообщений: 214
02.01.2015, 11:23
PHP
1
2
3
4
5
6
7
8
<?php foreach($news as $row): ?>
        <div class="col-md-4 news-item">
               <h2 class="title"><a href="news-single.html"><?=$row->id;?> | <?=$row->title;?></a></h2>
               <img class="thumb" src="<?=$row->s_img;?>" alt="" />
               <p><?=$row->s_desc;?></p>
               <a class="read-more" href="news-single.html">Подробнее<i class="fa fa-chevron-right"></i></a>                
        </div>
<?php endforeach; ?>
Чего-то Вы сильно тормозите, товарищ
0
 Аватар для anar4you
4 / 0 / 0
Регистрация: 16.07.2014
Сообщений: 65
02.01.2015, 13:02  [ТС]
Спасибо) Все работает.

Еще вопрос. У меня в модели передача данных происходит следующим образом:
PHP
1
2
$data['news'] = $this->news->get_news();
$this->load->view('welcome_message', $data);
Так было во время использования массивов.
А сейчас объекты.
Нужно ли это как-то изменить, или же оставить все как есть,
просто у меня все работает, но может все-токи этот код как-то изменить нужно?
0
Безумец
 Аватар для mrtmaxxx
48 / 48 / 12
Регистрация: 06.02.2014
Сообщений: 214
03.01.2015, 17:31
Лучший ответ Сообщение было отмечено anar4you как решение

Решение

Цитата Сообщение от anar4you Посмотреть сообщение
просто у меня все работает,
Работает-не трож Да и не знаю, че там еще можно изменить
1
 Аватар для anar4you
4 / 0 / 0
Регистрация: 16.07.2014
Сообщений: 65
03.01.2015, 21:31  [ТС]
Спасибо)
Цитата Сообщение от mrtmaxxx Посмотреть сообщение
Работает-не трож Да и не знаю, че там еще можно изменить
Спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.01.2015, 21:31
Помогаю со студенческими работами здесь

CodeIgniter. Понимающий
Нужен человек, который очень хорошо понимает CI.

Codeigniter language
Ребята, помогите понять этот механизм. я разобрался с роутерами что бы в строке можно было писать после домена ru или en. в бд такая запись...

Codeigniter. Pagination
Ребят, столкнулся с проблемой. В общем получилось сделать навигацию на сайте, но... когда кликаю на страницу &quot;2&quot; например, то у...

Codeigniter и COOKIE
Вопрос вот в чём: пишу сайт используя фреймворк Codeigniter 2.02 мне нужно поставить кукисы. я их записую вот таким способом: ...

CodeIgniter blog
Есть ли у кого исходники какого-то блога с авторизацией, комментами? Хотелось бы разобраться, каким образом это лучше организовать.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru