Как запросить базу данных из представления - CodeIgniter - PullRequest
4 голосов
/ 16 января 2010

У меня есть запрос, который выполняется в контроллере:

$data['query'] = $this->Member->select_sql($id);    
$this->load->view('myform');

и затем выводит данные в виде:

foreach ($query->result() as $row):
   echo $row->post_title;
   echo $row->post_user_id;
endforeach;

Таким образом, выводится список сообщений, сделанных пользователем. Теперь я хотел бы выполнить еще один запрос для каждого цикла постов через мою таблицу пользователей и выводить информацию о пользователях рядом с каждым постом. (Я не хочу выбирать данные из представления или объединять эти 2 таблицы в настоящее время в MySQL)

Есть идеи?

Ответы [ 2 ]

6 голосов
/ 24 августа 2012

Хотя это не очень хорошая практика, «самый чистый» подход будет следующим:

  • Получить экземпляр CI в представлении
  • Загрузить модель, содержащую нужные функции запроса на извлечение данных.
  • Запустить функцию из модели в представлении

Итак, в представлении:

$CI =& get_instance();
$CI->load->model('modelname');
$result = $CI->modelname->functionname();
var_dump($result);

Проверено и работает.

5 голосов
/ 16 января 2010

Добавление адаптера базы данных или соответствующего табличного объекта в представление.

Исходя из вашего кода выше, я бы предположил, что это будет

$data['userModel'] = $this->User;

Затем используйте его для запуска запроса, например,

$user = $userModel->select_sql($row->post_user_id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...