首页 > 解决方案 > 如何在codeigniter中显示名称

问题描述

请帮帮我,我想根据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();
 }

控制器

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');
}

看法

<?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 } ?>

我想在视图中同时显示发件人和收件人的姓名

标签: mysqldatabasecodeigniter

解决方案


控制器

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;
}

推荐阅读