Codeigniter получить имя из другой таблицы в обзоре - PullRequest
1 голос
/ 14 декабря 2011

Я получаю список из моей базы данных со следующим (в моем контроллере):

$view["interactions"] = $this->interacties->getInteractionsId($id);

Это дает массив со всем в моей базе данных в таблице 'взаимодействия'.

Я отправляю это на мой взгляд с помощью следующего цикла foreach:

<?php if($interactions): ?>
   <?php foreach($interactions as $interaction): ?>
      <tr class="gradeX">
         <td><a href="<?=site_url('interactie/single/'.$interaction['id'])?>"><?=$interaction['datum']?></a></td>
         <td><?=$interaction['gebruikers_id']?></td>
         <td><?=$interaction['gesproken_met']?></td>
         <td><?=$interaction['interactie']?></td>
      </tr>
   <?php endforeach; ?>
<?php else: ?>
   <p>Geen interacties</p>
<?php endif; ?>

Это прекрасно работает, но теперь я хочу изменить $interaction['gebruikers_id'] на имя, которое находится в моей таблице 'users', которая называется 'НА.Обычно я получаю идентификатор и использую другую функцию get.Но так как это в цикле foreach, я не уверен, как это сделать.

Это функция в модели:

public function getInteractionsId($id) {
    $this->db->select('*');
    $this->db->where('bedrijf_id', $id);
    $query = $this->db->get('interacties');

    return $query->num_rows() > 0 ? $query-> result_array() : FALSE;

}

Ответы [ 2 ]

1 голос
/ 15 декабря 2011

Если вы измените свою модель на эту:

public function getInteractionsId($id) {
  $this->db->select('interacties.*, gebruikers.naam');
  $this->db->join('gebruikers', 'interacties.gebruikers_id = gebruikers.id');
  $this->db->where('bedrijf_id', $id);
  $query = $this->db->get('interacties');
  return $query->num_rows() > 0 ? $query-> result_array() : FALSE;
}

Вы можете сделать это по вашему мнению:

<?=$interaction['naam']?>

Если вы не знакомы с основами соединений с базами данных, ознакомьтесь с этой статьей .

0 голосов
/ 14 декабря 2011

Поскольку вы находитесь в представлении, вы должны делать только презентационные материалы, никаких дальнейших вызовов базы данных.

Вы можете сделать это в контроллере в дополнительном цикле foreach.

Тем не менее, лучшим вариантом IMHO является исправление вашего метода getInteractionsId () для объединения с таблицей пользователей чтобы у вас были и $ взаимодействия ['gebruikers_id'], и $ взаимодействия ['users_naam'].

Что бы вы ни выбрали, подумайте о толстых моделях и тощих контроллерах .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...