Как отобразить имя в codeigniter - PullRequest
0 голосов
/ 02 января 2019

Пожалуйста, помогите мне, я хочу отображать имена пользователей из таблицы в соответствии с sender_id и recipient_id, как модель кода и вид в моем CodeIgniter

Схемы таблиц

Таблица данных пользователей

Сообщения таблицы данных

Модель

function get_pesan_view(){
    $this->db->from('messages');
    $this->db->join('users', 'users.id = messages.sender_id', 'left');
    $this->db->join('users', 'users.id = messages.recipient_id', 'left');
    $q2 = $this->db->get();
    return $q2->result();
 }

1020 * Контроллер илит *

public function view_pesan()
{
    $data['get_pesan']=$this->Emp_model->get_pesan_view();
    $this->load->view('employee/top');
    $this->load->view('employee/nav', $data);
    $this->load->view('employee/slidbar', $data);
    $this->load->view('employee/pesan', $data);
    $this->load->view('employee/bottom');
}

View

<?php foreach ($get_pesan as $pesan) { ?>
<strong> Sender : <?php echo $pesan->name ; ?> </strong>
<strong> Recipient : <?php echo $pesan->name ; ?> </strong>
<a> <?php echo $pesan->body ; ?></a>
<?php } ?>

Я хочу отобразить имя отправителя и получателя вместе в представлении

Ответы [ 2 ]

0 голосов
/ 03 января 2019

модель

    $this->db->select('messages.*,u1.{name of field for username} as sender_name,u2.{name of field for username} as recipient_name');
   $this->db->from('messages');
    $this->db->join('users u1', ' u1.id = messages.sender_id', 'left');
    $this->db->join('users u2', ' u2.id = messages.recipient_id', 'left');
    $q2 = $this->db->get();
    return $q2->result();

View

<?php foreach ($get_pesan as $pesan) { ?>
<strong> Sender : <?php echo $pesan->sender_name; ?> </strong>
<strong> Recipient : <?php echo $pesan->recipient_name; ?> </strong>
<a> <?php echo $pesan->body ; ?></a>
<?php } ?>

я забыл, что вы не можете присоединиться к одной сказке более одного раза, когда вам нужно использовать псевдонимы таблиц. это будет работать для вас / просто поместите имя, какое имя файла в вашей базе данных. это сработает, иначе выложите мне экран, где нет вашей таблицы и страниц с ошибками

0 голосов
/ 02 января 2019

Контроллер

public function get_names(){

  $this->load->model('model_name'); //If not loaded in the autoload.php file
  $names = $this->model_name->all_names();
  $this->load->view('view_file_name', compact('names'));
}

Запрос в модели будет выглядеть так:

public function all_names(){
  $this->db->select('name');
  $this->db->from('users');
  $this->db->join('messages', 'users.id = messages.sender_id');
  return $this->db->get()->result();
}

Чтобы присоединиться к recipient_id, сделайте так

$this->db->join('messages', 'users.id = messages.recipient_id');

Тогдаиспользуйте цикл foreach, чтобы показать все names в представлении

foreach($names as $row){
   echo $row->name;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...